我的应用程序中有3个配置文件,分别是:开发、测试、生产。我想使用spring概要文件来自定义bean注入,这样对于profile dev和test,我将有一个bean实现,对于profile prod,我将有另一个bean实现。问题是如何实现这一点。如何将一个bean设置为在两个不同的配置文件中处于活动状态。我尝试了这样的东西:
@Component
@Profile("dev, test")
class DevTestBean{}但不幸的是,spring将其视为一个名为dev comma space test的单一配置文件。
发布于 2015-08-11 20:48:03
您必须更改为@Profile({"dev", "test"})
该值必须声明为Set。请参阅documentation
导入如果@Configuration类被标记为@Profile,则将绕过与该类关联的所有@Bean方法和@
注释,除非一个或多个指定的配置文件处于活动状态。这类似于Spring XML中的行为:如果提供了beans元素的profile属性,那么beans元素将不会被解析,除非至少激活了profile 'p1‘或'p2’。同样,如果@Component或@Configuration类被标记为@ profile ({"p1","p2"}),则除非至少激活了配置文件'p1‘或'p2’,否则不会注册或处理该类。
发布于 2019-10-25 21:43:38
未在官方文档中提供XML解决方案:
因此,为了记录,我将把它放在这里:
<beans profile="dev,foo,bar">
<!-- (...) -->
</beans>https://stackoverflow.com/questions/31942187
复制相似问题