Обработка Spring Cache Cache-Control = no-cache - PullRequest
0 голосов
/ 16 января 2019

В нашем сервисе REST мы используем redis с пружинным кешем. Нам нужно обработать некоторые запросы с заголовком: Cache-control = no-cache. Эти запросы не должны получать данные из кэша.
Мы используем условие для @ cacheStatusServiceImpl.isNoCacheMode (), чтобы решить, следует ли использовать кеш или нет.
Пример:

    @Caching(put = {@CachePut(value = CacheNameConstants.MY_CACHE,
        key = "#id", condition = "@cacheStatusServiceImpl.isNoCacheMode()")},
        cacheable = {@Cacheable(value = CacheNameConstants.MY_CACHE,
                key = "#id", condition = "!@cacheStatusServiceImpl.isNoCacheMode()")})

Теперь нам нужно добавить sync = true, но синхронизацию нельзя использовать в сочетании с @CachePut, поэтому нельзя использовать предыдущий код.
Я попытался использовать пользовательский cacheResolver, я вижу параметры методов, имею cacheName, но не могу получить доступ к значению ключа. CacheAspectSupprt имеет закрытый метод для генерации ключа, к которому я не могу получить доступ. Есть идеи, как справиться с отсутствием кэша?

...