Spring Batch中的可选作业参数

时间:2010-09-10 07:31:52

标签: spring-batch

是否有可能使作业参数成为可选的,如果未指定而不是抛出异常,它的计算结果为null?

我所追求的是像

之类的东西
<bean id="fileNamePattern" class="java.lang.String" scope="step">
    <constructor-arg value="#{jobParameters[fileNamePattern]}" />
</bean>

我可以作为属性传递给另一个bean来处理未指定fileNamePattern的情况。

1 个答案:

答案 0 :(得分:1)

可选的jobParameters确实是null。您在这里遇到的问题是尝试使用null创建一个java.lang.String。您可以实现自己的bean,它当然知道如何正确处理null。但是,还有另一种选择。

最常见的选项是将jobParameter直接放入使用fileNamePattern on的bean的属性中。当然,这将要求bean作为“步骤”的范围。这是一个非常简单的例子。

<bean id="helloWorld"
    class="com.foo.example.HelloWorldTasklet" scope="step">
    <property name="someOptionalParameter" value="#{jobParameters[someOptionalParameter]}" />
</bean>

另一个选择是使用工厂bean(你自己的实现)而不是java.lang.String。