Spring Batch:如何将jobParameters传递给自定义bean?

时间:2013-04-03 10:32:23

标签: spring-batch

我还在研究spring批处理,遇到了一个需要将jobParameter传递给自定义bean的场景。 job参数包含文件的路径。

以下是我的上下文的样子:

<bean id="myBean" class=".....MyBean">
     <property name="path" value="file:#{jobParameters['PATH'}/fileName"/>
</bean>

这已包含在此处未包含的阅读器的步骤范围内。

问题是。实例化类时,传递给bean的值是 “file:#{jobParameters ['PATH'} / fileName”而不是调用作业时传递的jobParameter的值。它让我感到困惑,因为我在multiResourceReader上尝试设置资源值,它工作正常。我只是不能让它在自定义bean上工作。任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

bean定义中需要scope =“step”。

<bean id="myBean" class=".....MyBean" scope="step">
    <property name="path" value="file:#{jobParameters['PATH']}/fileName"/>
</bean>

此外,您的#{jobParameters ['PATH'}错过了结束括号]

答案 1 :(得分:0)

根据Serkan Bey的回复,请确保您声明

<bean class="org.springframework.batch.core.scope.StepScope" />

或使用<batch:*/>命名空间来确保选择步骤范围。