【问题标题】:Spring Batch: how to pass jobParameters to a custom bean?Spring Batch:如何将 jobParameters 传递给自定义 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 上工作。任何帮助将不胜感激。

【问题讨论】:

    标签: spring-batch


    【解决方案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 的回应,请确保您声明

      &lt;bean class="org.springframework.batch.core.scope.StepScope" /&gt;

      或使用&lt;batch:*/&gt; 命名空间来确保拾取步骤范围。

      【讨论】:

        猜你喜欢
        • 2013-07-07
        • 1970-01-01
        • 2019-01-19
        • 1970-01-01
        • 2018-11-08
        • 2018-12-02
        • 1970-01-01
        • 2020-11-19
        • 2020-07-12
        相关资源
        最近更新 更多