我们正在使用咖啡因来替换当前 springboot 中默认的 ConcurrentHashMap 缓存。我们正在使用@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
以及相关点:
CaffeineSpec 不支持使用非值参数配置 Caffeine 方法。这些必须在代码中配置。
有没有可能完成我的任务?
谢谢