I have a MultipleCacheManager class that looks like this:
@EnableCaching
public class MultipleCacheManagerConfig {
@Bean
@Primary
public CacheManager mainCacheManager() {
// instantiate caffeine manager and add in specifications
CaffeineCacheManager cacheManager = new CaffeineCacheManager("example1", "example2");
cacheManager.setCaffeine(Caffeine.newBuilder()
.expireAfterWrite(4, TimeUnit.HOURS)
.recordStats());
return cacheManager;
}
// these are examples of alternate cache managers if another cache needs to be configured differently.
public CacheManager alternateCaffeineManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager("example3");
cacheManager.setCaffeine(Caffeine.newBuilder()
.expireAfterWrite(1, TimeUnit.HOURS)
.recordStats());
return cacheManager;
}
Do I need to actually pass in my cacheNames in the CaffeieneCacheManager() constructor? As long as @Cacheable
has the property @Cacheable(cacheName = "example1", cacheManager = "mainCacheManager")
does it matter? The cache manager is technically already connected to the name at that point.