J'ai une application de démarrage de sprint simple en utilisant un démarrage à ressort 1.5.11.RELEASE
avec @EnableCaching
dans la classe Application Configuration
.
<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
Ma question est simple: comment peut-on spécifier une taille/expiration différente par cache? Par exemple. Peut-être qu'il est acceptable que cache-a
soit valide pour 1 day
. Mais cache-b
pourrait être correct pour 1 week
. La spécification sur un cache de caféine semble être globale pour CacheManager
plutôt que Cache
. Est-ce que je manque quelque chose? Peut-être existe-t-il un fournisseur plus adapté à mon cas d'utilisation?
Ceci est votre seule chance:
@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());
}
Exposez simplement vos caches personnalisées sous forme de haricots. Ils sont automatiquement ajoutés à la CaffeineCacheManager
.