如果当前配置文件不是数组之一,我想从自动装配候选中排除bean,如下所示:
@Component
@ActiveProfiles(value = {"!profile_1", "!profile_2"})
public class MyComponentImpl implements MyComponent
@Component
public class MyComponentDummy implements MyComponent
但是当我试图通过@ActiveProfiles注释时,bean似乎没有被排除在外,而且我正在获得expected single matching bean but found 2
。
我错过了某些东西,或者这种方式是不可能的,必须用
之类的东西来完成@ActiveProfiles(value = {"profile_3", "!profile_4", ... })
我的春季版本是4.2.2
答案 0 :(得分:1)
这可能类似于此处的查询How to conditionally declare Bean when multiple profiles are not active?
另一方面,我建议做正面选择而不是消极否定。 “默认”配置文件在这里可能会有所帮助。 假设您有多个配置文件 - Profile1 .. Profile5
如果它的Profile1或Profile2
,你不想创建bean的实例所以你可以用它来注释它 @ActiveProfiles(值= { “Profile3的”, “Profile4”, “规范5”, “默认”)