1

我正在使用 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 但不是 if else 条件 ,因为在这篇文章中我们正在使用基于系统环境中是否存在变量但没有指定 if,else 条件的加载 bean 的延迟初始化豆加载。

如果有人知道如何实现这一点,请分享。

4

1 回答 1

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 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-java-conditional中提供的条件 bean 过滤支持

于 2015-10-19T05:03:17.953 回答