1. Введение
В этой статье мы объясним, как Spring WebFlux взаимодействует с аннотацией @Cacheable
. Во-первых, мы рассмотрим некоторые распространенные проблемы и способы их избежать. Далее мы рассмотрим доступные обходные пути. Наконец, как всегда, мы приведем примеры кода.
2. @Cacheable
и реактивные типы
Эта тема еще относительно новая. На момент написания этой статьи не было полной интеграции между @Cacheable
и реактивными фреймворками. Основная проблема заключается в отсутствии неблокирующих реализаций кеша (API кеша JSR-107 блокирует). Только Redis предоставляет реактивный драйвер.
Несмотря на проблему, о которой мы упоминали в предыдущем абзаце, мы по-прежнему можем использовать @Cacheable
в наших методах обслуживания. Это приведет к кэшированию наших объектов-оболочек ( Mono
или Flux
), но не кеширует фактический результат нашего метода.