基于环境变量的条件Bean加载

时间:2015-10-19 02:52:17

标签: java spring if-statement conditional xml-configuration

我正在使用spring xml配置,并希望在设置系统环境属性时加载bean


例如::

if(system.property is set as "A")
    <bean id="A" class="mypackage.A">
    </bean>
else
    <bean id="B" class="mypackage.B">
    </bean>

是否可以使用SpEl,我找到的类似帖子是Condition Bean loading but not of if else condition 正如在这篇文章中我们正在使用基于if变量存在于系统环境中的加载bean的延迟初始化但是没有if,否则为bean加载指定了条件。

如果有人有任何想法如何分享请分享实现这一目标。

1 个答案:

答案 0 :(得分:1)

您可以使用spring bean配置文件

     <beans profile="A">
       <bean id="A" class="mypackage.A"></bean>
     </beans>

     <beans profile="B">
       <bean id="A" class="mypackage.B"></bean>
     </beans>

要激活其中一个配置文件,您可以设置系统属性的值 spring.profiles.active到A或B

您还可以使用Spring 4中提供的条件bean过滤支持 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-java-conditional