Based on this answer I try to use customized expireAfterWrite
for "customCache"
So my config look like this:
@Configuration
@EnableCaching
public class CaffeineCacheConfig {
...
@Bean
public CaffeineCacheManager cacheManager(Caffeine<Object, Object> caffeineCacheBuilder) {
CaffeineCacheManager result = new CaffeineCacheManager();
result.setCaffeine(caffeineCacheBuilder);
return result;
}
@Bean
public Caffeine<Object, Object> caffeineCacheBuilder() {
return Caffeine.newBuilder()
.maximumSize(10000)
.expireAfterWrite(60, TimeUnit.SECONDS)
.recordStats();
}
@Bean
public CaffeineCache customCache() {
return new CaffeineCache("customCache",
Caffeine.newBuilder()
.maximumSize(10000)
.expireAfterWrite(60, TimeUnit.MINUTES)
.recordStats()
.build());
}
}
Then in codeBase I use:
"customCache"
Cache cache = cacheManager.getCache("customCache")
String result = cache.get("myKey", () -> "cachedValue")
And based on my experiments it keeps values on cache pnly 60 seconds by I expect 60 minutes.
How to achieve desired result ?