java - 根据应用程序在 jar 中加载 spring bean

标签 java spring spring-mvc caching

我有一个名为 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/

相关文章:

java - 通过注释映射实体的 Hibernate Search 的替代方案

Java Tomcat 8.5/Spring 4 从 URL 中移除多个空格

spring-mvc - 类上的@Secured 注释不适用于父类方法

java - 如何在MySQL中创建与包含关系的组合键相对应的java对象

java - 时间复杂度(Java,快速排序)

java - 克隆 java LinkedHashMap

java - 如何避免在 Spring Boot 应用程序中写入显式端口号 (8443)

java - 为什么请求会发送到 Struts Dispatcher?

java - 如果知道时间,如何计算范围内每个月的数据并添加到一个列表

nio - 我可以使用Java NIO2吗?