Мы используем Spring Boot 2 и Spring Actuator.При создании кеша, подобного следующему:
@Bean
public CaffeineCache someCache() {
return new CaffeineCache("my-cache",
Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.SECONDS)
.build());
}
он зарегистрирован в Spring Actuator и может быть доступен и обработан с помощью конечных точек:
❯ http GET localhost:8080/actuator/caches
{
"cacheManagers": {
"cacheManager": {
"caches": {
"my-cache": {
"target": "com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache"
}
}
}
}
}
Однако это допустимо при использовании аннотации@Cacheable
- но я бы хотел создать кеш и использовать его как карту.
Поэтому я могу создать:
@Bean
public com.github.benmanes.caffeine.cache.Cache<String, MyObject> customCache(QueryServiceProperties config) {
return Caffeine.newBuilder()
.maximumSize(10)
.expireAfterAccess(10, TimeUnit.SECONDS)
.build();
}
И это работает, но не может быть обнаружено Spring Actuator .Есть ли способ зарегистрировать этот тип кэша?