如何引用bean属性值?

时间:2015-10-12 14:46:55

标签: java spring

这就是我要做的事情。我有一个弹簧批处理作业,它触发一个具有多个属性的bean。我希望将这些属性划分为单独的bean以用于组织目的。

所以我现在有这个:

<bean id="runSQL" class="Tasklet"
    scope="step">
    <property name="sourceSQL"
        value="SQL STATEMENT HERE" />
    <property name="targetSQL"
        value="SQL STATEMENT HERE"></property>

  <property name="filePath" value="#{jobParameters['OUTPUT.FILE.PATH']}"> </property>
</bean>

但我基本上想要这个(由于缺少类定义而无法工作,我不知道#{souce.sourceSQL}是否是获取bean属性的有效方法):

<bean id="runSQL" class="Tasklet"
    scope="step">
    <property name="sourceSQL"
        value="#{source.sourceSQL}" />
    <property name="targetSQL"
        value="#{target.targetSQL}"></property>

  <property name="filePath" value="#{jobParameters['OUTPUT.FILE.PATH']}">     </property>
</bean>

<bean id="sourceSQL" class="Class not needed"
    scope="step">
    <property name="sourceSQL"
        value="SQL STATEMENT HERE" />
    </property>
</bean>

<bean id="targetSQL" class="Class not needed"
    scope="step">
    <property name="sourceSQL"
        value="SQL STATEMENT HERE" />
    </property>
</bean>

我试图用

引用传统的bean
<ref bean="someBean"/>

但是我的Tasklet并不是为了接收bean而设计的,只是属性值,我更愿意保留Tasklet。我如何绕过这种或替代方式为bean存储这些数据?

1 个答案:

答案 0 :(得分:0)

您使用#{...}走在正确的轨道上。如果要引用bean,请在Spring bean ID前面添加@,例如#{@sourceSQL.sourceSQL}#{@targetSQL.sourceSQL}

请参阅Spring Expression language的文档。