Spring cache

Проработать

  1. Кэширование данных в приложении на Spring Boot

Что это

Кэш - участок оперативной памяти содержащий информацию, которая часто запрашивается. Spring cache хранит кеш в ConcurrentMapCache. В качестве ключа использует все входящие параметры метода.

Быстрый старт в Spring boot

Добавить зависимость - spring-boot-starter-cache

Над конфигурационным классом(@Configuration) добавить аннотацию @EnableCaching.

Указать аннотацию @Cacheable над необходимым методом(в слое service) с параметром имени кеша - @Cacheable("userCache").

Если метод возвращает exception кеш отрабатывать не будет.

@Cacheable

@Cacheable - имеет параметр key, в котором можно указать что использовать в качестве ключа для кеша.

Cacheable(key = "#lastName")
        

@CachePut

@CachePut - аннотация для обновления кеша. Ставиться над update методами на service слоях, c параметром имени кеша - @Cacheable("userCache").

@CacheEvict

@CacheEvict - указывает, что метод вызывает удаление из кеша, параметром имени кеша - @Cacheable("userCache").

Имеет дополнительный параметр allEntries = true - для удаление всех кешей по данному имени кеша.

@CacheConfig

@CacheConfig - общая аннотация на класс service в которой можно указать cacheNames для именнования кеша для всех кеш аннотаций в классе.

CacheManager

CacheManager класс который можно использовать для прямой работы с кешем.

//spring injection
private final CacheManager cacheManager;

cacheManager.getCache("userCache");