Кэш - участок оперативной памяти содержащий информацию, которая часто запрашивается. Spring cache хранит кеш в ConcurrentMapCache. В качестве ключа использует все входящие параметры метода.
Добавить зависимость - spring-boot-starter-cache
Над конфигурационным классом(@Configuration) добавить аннотацию @EnableCaching.
Указать аннотацию @Cacheable над необходимым методом(в слое service) с параметром имени кеша - @Cacheable("userCache").
Если метод возвращает exception кеш отрабатывать не будет.
@Cacheable - имеет параметр key, в котором можно указать что использовать в качестве ключа для кеша.
Cacheable(key = "#lastName")
@CachePut - аннотация для обновления кеша. Ставиться над update методами на service слоях, c параметром имени кеша - @Cacheable("userCache").
@CacheEvict - указывает, что метод вызывает удаление из кеша, параметром имени кеша - @Cacheable("userCache").
Имеет дополнительный параметр allEntries = true - для удаление всех кешей по данному имени кеша.
@CacheConfig - общая аннотация на класс service в которой можно указать cacheNames для именнования кеша для всех кеш аннотаций в классе.
CacheManager класс который можно использовать для прямой работы с кешем.
//spring injection private final CacheManager cacheManager; cacheManager.getCache("userCache");