Class CacheConfiguration
EhCache-менеджер (ehcacheManager) — общий и cache-agnostic: каждый модуль регистрирует
свой персистентный кэш через EhcacheRegistrar, а ehcacheCacheManager оборачивает
их в Spring-CacheManager. Для остальных кэшей (например, code lens) используется Caffeine
с хранением в памяти.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncacheManager(Caffeine<Object, Object> caffeine) Основной менеджер кэша, использующий Caffeine для кэширования в памяти.Ограниченный кэш резолва общего модуля по имени дляServerContext.findCommonModule.ehcacheCacheManager(CacheManager ehcacheManager, List<EhcacheRegistrar> registrars) Spring-CacheManagerповерх кэшей общего EhCache-менеджера.ehcacheManager(CachePathProvider cachePathProvider, String basePath, String fullPath, List<EhcacheRegistrar> registrars) Общий менеджер EhCache с персистентным хранением на диске.
-
Constructor Details
-
CacheConfiguration
public CacheConfiguration()
-
-
Method Details
-
cacheManager
Основной менеджер кэша, использующий Caffeine для кэширования в памяти.Помечен как
@Primary, поэтому используется для всех кэшей по умолчанию, если не указан явно другой менеджер кэша (например,ehcacheCacheManagerдля typoCache). -
caffeineConfig
-
commonModuleCache
@Bean @WorkspaceScope(proxyMode=INTERFACES) public Cache<String, Optional<CommonModule>> commonModuleCache()Ограниченный кэш резолва общего модуля по имени дляServerContext.findCommonModule.Workspace-scoped: один экземпляр на воркспейс (резолв зависит от конфигурации воркспейса, поэтому общий singleton-кэш смешивал бы воркспейсы). Ограничен по размеру, т.к. кэшируются и промахи, а ключи — имена-идентификаторы исходного кода.
-
ehcacheManager
@Bean(destroyMethod="close") public CacheManager ehcacheManager(CachePathProvider cachePathProvider, @Value("${app.cache.basePath}") String basePath, @Value("${app.cache.fullPath}") String fullPath, List<EhcacheRegistrar> registrars) Общий менеджер EhCache с персистентным хранением на диске.Cache-agnostic: каждый кэш объявляется отдельным
EhcacheRegistrar. Настроен программно, без XML; при закрытии Spring-контекста вызываетсяclose(). Кэш размещается в каталоге пользователя (путь переопределяется свойствомapp.cache.fullPath). При запуске нескольких экземпляров используются каталоги с суффиксами @1, @2 и т.д.; если все заблокированы (более 10 экземпляров), используется кэш в памяти без персистентности. -
ehcacheCacheManager
@Bean public CacheManager ehcacheCacheManager(CacheManager ehcacheManager, List<EhcacheRegistrar> registrars) Spring-CacheManagerповерх кэшей общего EhCache-менеджера.На него ссылаются потребители через
@Cacheable(cacheManager = "ehcacheCacheManager"), когда нужен персистентный кэш, а не@PrimaryCaffeine.
-