Spring Batch:如何将 jobParameters 传递给自定义 bean?
Posted
技术标签:
【中文标题】Spring Batch:如何将 jobParameters 传递给自定义 bean?【英文标题】:Spring Batch: how to pass jobParameters to a custom bean? 【发布时间】:2013-03-24 23:30:26 【问题描述】:我仍在研究 Spring Batch,遇到了需要将 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 上工作。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您需要在 bean 定义中使用 scope="step"。
<bean id="myBean" class=".....MyBean" scope="step">
<property name="path" value="file:#jobParameters['PATH']/fileName"/>
</bean>
您的 #jobParameters['PATH' 也缺少右括号 ]
【讨论】:
【参考方案2】:除了 Serkan Bey 的回应,请确保您声明
<bean class="org.springframework.batch.core.scope.StepScope" />
或使用<batch:*/>
命名空间来确保拾取步骤范围。
【讨论】:
以上是关于Spring Batch:如何将 jobParameters 传递给自定义 bean?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Batch:如何将 jobParameters 传递给自定义 bean?
Spring Batch - 如何将字符串从文件转换为日期?
如何将文件名输入到 Spring Batch 的 Item Reader 或 Item Processor 中?
如何在 Spring Batch 中使用 Spring 事务支持