【发布时间】:2015-01-19 05:27:55
【问题描述】:
Spring Profile 注释允许您选择配置文件。但是,如果您阅读文档,它只允许您使用 OR 操作选择多个配置文件。如果您指定@Profile("A", "B"),那么如果配置文件 A 或配置文件 B 处于活动状态,您的 bean 就会启动。
我们的用例不同,我们希望支持多种配置的 TEST 和 PROD 版本。因此,有时我们希望仅在配置文件 TEST 和 CONFIG1 都处于活动状态时才自动装配 bean。
Spring 有什么办法吗?最简单的方法是什么?
【问题讨论】:
-
在文档中它被称为
and/or@Profile("a","b")的行为。这不是你要找的吗?文档 -Likewise, if a @Component or @Configuration class is marked with @Profile({"p1", "p2"}), that class will not be registered/processed unless profiles 'p1' and/or 'p2' have been activated. -
@JavaBond 这意味着它是“OR”运算符而不是“AND”。他们只是想明确指出它不是排他性的或(xor)
-
我为 Spring Source 开了一张票,以支持 Profile 注释的“AND”运算符:jira.spring.io/browse/SPR-12458
-
好吧。让我们看看 Spring 团队怎么说。
-
他们接受了票,并且显然会在某个时候这样做。
标签: java spring spring-profiles