мы используем кофеин для замены кэша ConcurrentHashMap, который используется по умолчанию в текущей версии Springboot. Мы динамически создаем кеши, используя аннотацию @Cacheable(cacheNames = { "..." })
.
Я пытаюсь установить свойство recordStats
, поскольку мы используем пакет привода springboot для мониторинга различных аспектов наших приложений.
Я попытался установить spring.cache.caffeine.spec=expireAfterAccess=3600s,recordStats
в application.properties
, что не работает.
Установка его в классе @Configure
также не работала:
@Configuration
public class CacheConfig {
@Bean
public CacheManager cacheManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
cacheManager.setCacheSpecification("expireAfterAccess=3600s,recordStats");
return cacheManager;
}
}
Статистика кэша не отображается в конечной точке /actuator/cache/{caches}
или на нашем сервере springboot-admin.
Из текущей документации API я нашел:
Синтаксис строки представляет собой последовательность разделенных запятыми ключей или пар ключ-значение, каждая из которых соответствует методу конструктора Caffeine.
initialCapacity=[integer]: sets Caffeine.initialCapacity.
...
recordStats: sets Caffeine.recordStats().
Длительности представлены целым числом, за которым следуют один из «d», «h», «m» или «s», обозначающий дни, часы, минуты или секунды соответственно. В настоящее время нет синтаксиса для запроса истечения в миллисекундах, микросекундах или наносекундах.
Пробелы до и после запятых и знаков равенства игнорируются. Ключи не могут повторяться; также недопустимо использовать следующие пары ключей в одном значении:
maximumSize and maximumWeight
weakValues and softValues
И соответствующий пункт:
CaffeineSpe c не поддерживает настройку Кофеиновые методы с неценовыми параметрами. Они должны быть настроены в коде.
Нет ли возможности выполнить мою задачу?
спасибо