在Spring批处理中访问ItemProcessor上的jobParameter



我是spring批处理的新手,在开发过程中,我遇到了一个需要访问ItemProcessor上的jobParameter的场景。我已经在阅读器(MultiresourceReader和StaxeventItemReader也与我已经构建的CustomReader)上做到了这一点,并且它是成功的,我可以检索jobParameter,但不能与ItemProcessor。

这是我的片段。

<bean id="myProcessor" class="com.......MyCustomProcessor" scope="step">
    <property name="myBean" ref="customBean"/>
</bean>
<bean id="customBean" class="...................MyCustomBean" scope="step">
    <property name="file" value="#{jobParameters['FILE']}/fileName.txt"/>
</bean>

它正在产生一个lazyBinding异常。对于如何检索项目处理器上的jobParameter有什么想法吗?

从我在代码片段中看到的,您尝试从customBean访问作业参数…不是ItemProcessor!

Spring中的普通bean不理解步骤作用域。Spring bean的作用域是单例、原型、请求或会话!

如果你移动

<property name="file" value="#{jobParameters['FILE']}/fileName.txt"/>

ItemProcessor它应该工作。

我假设您在处理器内部使用customBean ?如果是这样,那么您可以在ItemProcessor中设置jobParameter的值。

最新更新