java - 在application.yml中设置bean优先级

标签 java spring

我有2颗 Spring Bean

@Bean
public CacheManager hazelcastCacheManger() {
    ...
}

@Bean
public CacheManager infinispanCacheManger() {
    ...
}

如何在 application.yml 属性文件中设置要在应用程序中使用的 CacheManager 类型的 bean?也许像参数化限定符之类的东西?

最佳答案

您可以在bean声明中指定@Profile:

@Bean
@Profile("profile1")
public CacheManager hazelcastCacheManger() {
    ...
}

@Bean
@Profile("profile2")
public CacheManager infinispanCacheManger() {
    ...
}

并在 application.yml 中指示哪个配置文件处于 Activity 状态:

spring:
   profiles: 
      active:profile2

这里有更多详细信息Profile based properties and yaml example .

如果您需要针对不同的启动使用不同的配置文件,您可以在 JVM 启动属性中指定 Activity 配置文件。

-Dspring.profiles.active=profile2

关于java - 在application.yml中设置bean优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53816348/

相关文章:

java - Applet 和对象标签 JSP 交互

java - 为什么只记录消息,而不记录完整模式?

java - 用循环的空行替换三角形的每一行

java - Spring 属性占位符解密已解析的属性

jquery - 在表单中实现查看/编辑模式

java - 如何在 java 中打印完整的 elasticsearch 调试请求

java - Eclipse Java EE IDE 不支持 javax.servlet 包

java - 文档监听器错误

java - tomcat7 maven插件WebApplicationInitializer错误

spring - Grails + hibernate + Controller sessionFactory空对象?