Очевидно, что существует множество продуктов для кэширования, которые можно использовать в качестве резервного хранилища. Для тех, которые не поддерживают JSR-107, необходимо предоставить CacheManager
и реализацию Cache
. Все это может показаться сложнее, чем есть на самом деле, поскольку на практике классы, как правило, являются простыми адаптерами, которые отображают структуру абстракции кэширования поверх API-интерфейса хранилища, как это делают классы ehcache
. Большинство классов CacheManager
могут использовать классы из пакета org.springframework.cache.support
(например, AbstractCacheManager
, который берет на себя работу со стереотипным кодом, оставляя лишь фактическое завершающее отображение).
Как настроить TTL/TTI/политику вытеснения/функцию XXX?
Непосредственно через поставщика кэша. Абстракция кэша – это абстракция, а не реализация. Используемое вами решение может иметь поддержку различных политик в области обработки данных и различные топологии, которые другие решения не поддерживают (например, ConcurrentHashMap
из JDK – её открытие в абстракции кэша было бы бесполезным, поскольку отсутствует базовая поддержка). Управление такой функциональностью должно осуществляться непосредственно через резервный кэш (при его конфигурировании) или через её собственный API-интерфейс.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ