【问题标题】:Conditional Bean Loading based on environment variable基于环境变量的条件 Bean 加载
【发布时间】:2016-01-17 07:06:46
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 实际上我忘了提到我想避免分析只加载一个条件bean,无论如何感谢您的输入。
    猜你喜欢
    • 2018-11-14
    • 2017-11-14
    • 2016-05-23
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多