我正在使用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加载指定了条件。
如果有人有任何想法如何分享请分享实现这一目标。
答案 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