【问题标题】:Setting a spring property only when its not null只有当它不为空时才设置弹簧属性
【发布时间】:2013-12-05 00:03:56
【问题描述】:

有没有办法只在它不为 null 时设置 spring 属性?

<bean class="class name">
            <property name="name" value="DependentId"/>
        </bean>

我只想在 ID 不为空时设置此属性(也可以为空)

我尝试了类似问题之一的建议,但没有奏效

<bean class="class name">
            <property name="name" value="$(DependentId:#{{null}})"/>
        </bean>

【问题讨论】:

    标签: spring properties dependency-injection


    【解决方案1】:

    你可以试试这个解决方案:

    <bean name="bean name" class="class name">
       <property name="name" value="#{'${dependentId}'=='' ? null : '${dependentId}'}" />
    </bean>
    

    【讨论】:

    • 如果属性为空,是否仍将其设置为空字符串?因为条件说如果它为空,请将其设置为 null
    • 确实是错误的 - 但是如果值为 null ,你想做什么?应该是另一个值,你希望设置什么?
    • 如果从 java 文件返回 null,我根本不想设置该属性
    • 就我使用过的 Spring 而言,我认为这是不可能的。 Spring 将注入该值,无论该值是什么。如果值为null,它将注入它。 - 您设置了另一个值,但在考虑其值时无法确定属性的存在(或不存在)。
    猜你喜欢
    • 2012-03-10
    • 2016-08-29
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2012-05-16
    相关资源
    最近更新 更多