我有一个使用 spring boot 的简单冲刺启动应用程序 1.5.11.RELEASE
与 @EnableCaching
关于申请 Configuration
类(class)。
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
应用程序属性
spring.cache.type=caffeine
spring.cache.cache-names=cache-a,cache-b
spring.cache.caffeine.spec=maximumSize=100, expireAfterWrite=1d
题
我的问题很简单,如何为每个缓存指定不同的大小/到期时间。例如。或许
cache-a
可以接受对 1 day
有效.但是cache-b
可能没问题 1 week
.关于咖啡因缓存的规范似乎对 CacheManager
来说是全局的。而不是 Cache
.我错过了什么吗?也许有更适合我的用例的提供程序?
最佳答案
这是你唯一的机会:
@Bean
public CaffeineCache cacheA() {
return new CaffeineCache("CACHE_A",
Caffeine.newBuilder()
.expireAfterAccess(1, TimeUnit.DAYS)
.build());
}
@Bean
public CaffeineCache cacheB() {
return new CaffeineCache("CACHE_B",
Caffeine.newBuilder()
.expireAfterWrite(7, TimeUnit.DAYS)
.recordStats()
.build());
}
只需将您的自定义缓存公开为 bean。它们会自动添加到
CaffeineCacheManager
.
关于spring-boot - 是否可以在 Spring Boot 中使用咖啡因为每个缓存设置不同的规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49885064/