我有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/