我有一个名为 common.jar 的 jar,其中包含两个缓存管理器 bean,如下所示,
@Bean
public CacheManager abcCacheManager() {
/* Bean for abc service */
}
@Bean
public CacheManager xyzCacheManager() {
/* Bean for xyz service */
}
这两个 bean 都配置了不同的缓存名称,因为我有两个不同的缓存(每个应用程序 1 个)。
现在,当我运行 abc 服务时,两个缓存管理器都会被激活并加载两个缓存。
有没有办法只能根据正在调用的应用程序触发特定的 bean?
最佳答案
使用@Conditional
注释组之一
请参阅 the doc 中的 44.3 条件注释
在您的情况下,它可能是@ConditionalOnClass或@ConditionalOnMissingClass
关于java - 根据应用程序在 jar 中加载 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45500595/