0

我有以下代码,我想在“instagramSearchResultsCache”中获取数据。例如,如何使用 Spring Cache 来打印它?

@Cacheable(value = "instagramSearchResultsCache", key = "#tagName")
    public ArrayList<SingleInstagramDTO> getInstagramData(String tagName) {

        JSONObject jsonObject = sendGETRestTemplate(tagName);
        if (jsonObject == null) {
            return null;
        }

        JSONArray arr = jsonObject.optJSONArray("data");
        ArrayList<SingleInstagramDTO> instagramRestObjectsList = new ArrayList<>();

        for (int i = 0; i < arr.length(); i++) {

            JSONObject jsonElement = arr.optJSONObject(i);

            InstagramFormatter formatter = new InstagramFormatter(jsonElement);
            JSONObject instagramJSONObject = formatter.getResultInstagramObject();

            instagramRestObjectsList.add(new SingleInstagramDTO(instagramJSONObject));
        }

        return instagramRestObjectsList;
    }
4

1 回答 1

0

您不应该从 prod 设置中的代码访问这些数据,因为这会破坏抽象的目的。如果您只是想查看内部进行测试,这将取决于您的缓存提供程序。例如,对于 redis,您可以使用 RedisConnection 按某种模式搜索键。但同样,这高度依赖于提供者,并且从不推荐或不需要,因为注释的提议是这样的,因此您不必担心手动访问数据位置。如果数据已经存在,则不会发生方法调用,您的数据将从缓存中返回。

于 2018-08-07T03:03:16.823 回答