Java библиотека
Как устроен кеш в Spring Boot? Spring Boot упрощает кеширование благодаря аннотациям и встроенной интеграции с разными кеш-провайдерами (EhCache, Caffeine, Redis и др.). Spring использует Spring Cache Abstraction, которая оборачивает кеширующую логику в аннотации: 🔘 @Cacheable — кладёт результат в кеш 🔘 @CachePut — обновляет кеш 🔘 @CacheEvict — удаляет из кеша За кулисами используется прокси (через Spring AOP или CGLIB), который перехватывает вызовы методов, проверяет кеш и возвращает либо сохранённое значение, либо выполняет метод и кеширует результат. 🔍 Что под капотом Если вызвать метод с @Cacheable, Spring выполняет несколько шагов: 1. Определяет ключ кеша 🔘 По умолчанию ключ формируется из параметров метода 🔘 Можно задать кастомный ключ через key = "#id" 2. Проверяет кеш-провайдер 🔘 Дефолтный провайдер — ConcurrentHashMap 🔘 Можно подключить Redis, Caffeine, EhCache и т. д. 3. Возвращает данные 🔘 Если значение есть в кеше — сразу отдаётся 🔘 Если нет – вызывается метод и результат сохраняется в кеше ⚠️ Нюансы — Кеш работает только для Spring-управляемых бинов (если метод вызван внутри того же класса — кеш не сработает) — Не кешируйте изменяемые объекты, иначе возможны неожиданные побочные эффекты — Очищайте кеш, если данные меняются (@CacheEvict)
Если у вас установлено приложение,
вы можете сразу перейти в канал