0

我是 Spring Batch 的新手,在我的开发过程中,我遇到了一个需要访问 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 的任何想法?

4

1 回答 1

3

根据我在您的代码段中看到的内容,您尝试从 customBean 访问作业参数...而不是ItemProcessor!。

Spring 中的常规 bean 不理解step范围。Spring bean 的范围是单例、原型、请求或会话!

如果你移动你的

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

ItemProcessor它应该可以工作。

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

于 2013-04-10T15:41:01.477 回答