这就是我要做的事情。我有一个弹簧批处理作业,它触发一个具有多个属性的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存储这些数据?
答案 0 :(得分:0)
您使用#{...}
走在正确的轨道上。如果要引用bean,请在Spring bean ID前面添加@
,例如#{@sourceSQL.sourceSQL}
和#{@targetSQL.sourceSQL}
。
请参阅Spring Expression language的文档。