我的 application.yml 中有一个默认的 redis 缓存配置:
cache:
type: redis
redis:
time-to-live: 7200000 # 2 hour TTL - Tune this if needed later
redis:
host: myHost
port: myPort
password: myPass
ssl: true
cluster:
nodes: clusterNodes
timeout: 10000
它工作得很好,我不想为它创建任何自定义缓存管理器。
但是,我的代码中有一些缓存不需要使用 redis。出于这个原因,我想制作第二个 CacheManager,它是一个简单的 ConcurrentHashMap 并使用 @Cacheable 指定它
为此,我创建了一个新的 CacheManager Bean:
@Configuration
@EnableCaching
@Slf4j
class CachingConfiguration {
@Bean(name = "inMemoryCache")
public CacheManager inMemoryCache() {
SimpleCacheManager cache = new SimpleCacheManager();
cache.setCaches(Arrays.asList(new ConcurrentMapCache("CACHE"));
return cache;
}
}
这导致 inMemoryCache 成为我的默认缓存,而我所有其他 @Cacheable() 都尝试使用 inMemoryCache。我不希望我创建的 CacheManager bean 成为我的默认值。无论如何我可以指定它是次要的并且不阻止 spring-cache 做它的魔法吗?
湖上湖
相关分类