Как получить доступ к данным Spring @Cacheable?

У меня есть следующий код, и я хочу получить данные в "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;
    }

1 ответ

Вы не должны получать доступ к этим данным из кода в настройке prod, так как это противоречит цели абстракции. Если вы просто хотите заглянуть внутрь для тестирования, это будет зависеть от вашего провайдера кеша. Например, с Redis вы можете использовать RedisConnection для поиска ключей по некоторому шаблону. Но опять же, это сильно зависит от поставщика и никогда не рекомендуется и не требуется, так как предложение аннотации так, что вам не нужно беспокоиться о доступе к данным вручную. Если данные уже существуют, вызов метода не произойдет, и ваши данные будут возвращены из кэша.

Другие вопросы по тегам