java - Spring配置中的条件语句

标签 java spring

是否可以在 Spring 配置中使用条件语句?

根据我的 Bundle 的配置文件,我是否想注入(inject)一个属性。

示例: 在我的 Spring 配置中,我定义了一个稍后要注入(inject)的 Bean:

<spring:bean id="myClass" class="org.demo.MyClass"/>

完美的是 if/end/else 等。

<spring:bean id="someOtherClass" class="org.demo.SomeOtherClass">

    if ${my.config.doInject} == true then
        <spring:property name="injectedClass" ref="myClass" />
    end

    <spring:property name="someOtherProperty" value="12345"/>

</spring:bean>

这样稍后,在 SomeOtherClass 中,我可以检查 injectedClass 是否为 Null。并据此构建一些逻辑。

最佳答案

您可以使用 SpEL 三元运算符,如下所述:http://docs.spring.io/spring-framework/docs/3.2.8.RELEASE/spring-framework-reference/html/expressions.html

<spring:bean id="someOtherClass" class="org.demo.SomeOtherClass">
    <spring:property name="injectedClass" ref="#{ my.config.doInject ? myClass : null } />
    <spring:property name="someOtherProperty" value="12345"/>
</spring:bean>

关于java - Spring配置中的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914387/

相关文章:

java - 如何使spring boot永远不会发出 session cookie?

java - 使用 ModelAndView 还是返回 String 作为 View 更好?

Java正则表达式2忽略2个单词之间的模式并且应该在if条件中说匹配

Spring Boot 不适用于 Elastic Beanstalk

java - 在 Spring 中销毁的 Session 上调用 Listener 类中的服务层函数

java - JDBC MVC - 在存储库方法中共享数据库连接实例的方法

java - 使用@Pattern时如何获取验证输入的值?

java - JDialog 中 JComponent 的显示延迟?

java - 调用静态方法并将模型传递给 Controller

java - IS Camel 从 jetty 获取 http 请求