0

本质上,我有一些应用程序可以独立地与数据层交互。对于每个正在运行的实例,缓存需求可能会有所不同。我知道您可以在自己的类中轻松地将不同的缓存管理器定义为@Bean,例如:

@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());
}

但是,我们不一定希望每次都重新编译代码;因此,如果我们可以将其配置为 application.properties 级别,那就太好了,因为这是应用程序交互的方式。

我知道使用咖啡因可以定义一些缓存,如下所示:

spring.cache.type=caffeine
spring.cache.cache-names=cache-a,cache-b
spring.cache.caffeine.spec=maximumSize=100, expireAfterWrite=1d

但据我了解,这些规范将应用于每个缓存。我的问题是如何在 application.properties 级别对每个单独的缓存名称应用不同的规范?

谢谢。

4

0 回答 0