gpt4 book ai didi

java - 如何在多个模块/项目中配置多个缓存管理器 spring cache java

转载 作者:行者123 更新时间:2023-12-02 11:38:15 24 4
gpt4 key购买 nike

当前有两个不同的模块假设项目 A 和项目 B。项目 B 导入/使用到项目 A 中。当前项目 B 已经有 CacheManager。

项目B

  public class CacheConfig {

@Bean
public CacheManager cacheManager() {

// using SimpleCacheManager()

}
}

但现在计划出于其他目的在项目 A 中实现 CacheManager。

class SomeCacheConfig{

@Bean
public CacheManager someCacheManager(){
// using SimpleCacheManager()
}

}

加载应用程序时抛出以下异常。

 java.lang.IllegalStateException: No CacheResolver specified, and no unique bean of type CacheManager found. Mark one as primary (or give it the name 'cacheManager') or declare a specific CacheManager to use, that serves as the default one.

你能帮我看看如何在多个模块/项目中实现多个cacheManager吗?

最佳答案

那么好吧。将 @Primary 放在将用作默认值的 CacheManager bean 上。

@Primary
@Bean(name = "primaryCacheManager")
public CacheManager primaryCacheManager() {
return new SimpleCacheManager();
}


@Bean(name = "myCacheManager")
public CacheManager myCacheManager() {
return new SimpleCacheManager();
}

当您想使用另一个(即不是默认值)时,请使用 @Qualifier 注释显式定义 CacheManager bean 的名称。

@Autowired
@Qualifier("myCacheManager")
private CacheManager myCacheManager;

或者如果您使用 annotation base Spring Cache implementation ,您还可以将 CacheManager 名称定义为这些注释的属性

@Cacheable(value = "some",cacheManager = "myCacheManager")
public String getSome(){
return "";
}

关于java - 如何在多个模块/项目中配置多个缓存管理器 spring cache java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48769886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com