Spring batch Spring批处理中的可选作业参数

Spring batch Spring批处理中的可选作业参数,spring-batch,Spring Batch,如果未指定作业参数而不是引发异常,是否可以使作业参数在计算结果为null的意义上成为可选的 我想要的是一个 <bean id="fileNamePattern" class="java.lang.String" scope="step"> <constructor-arg value="#{jobParameters[fileNamePattern]}" /> </bean> 我可以将其作为属性传递给另一个bean,该bean处理未指定fileN

如果未指定作业参数而不是引发异常,是否可以使作业参数在计算结果为null的意义上成为可选的

我想要的是一个

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


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

可选的jobParameters会显示为null。这里的问题是试图创建一个带有null的java.lang.String。当然,您可以实现自己的bean,它知道如何适当地处理null。然而,还有另一种选择

最常见的选项是将jobParameter直接放入使用fileNamePattern的bean的属性中。当然,这需要将bean的范围限定为“步骤”。这里有一个非常简单的例子来说明我的意思

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


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

可选的作业参数会显示为null。这里的问题是试图创建一个带有null的java.lang.String。当然,您可以实现自己的bean,它知道如何适当地处理null。然而,还有另一种选择

最常见的选项是将jobParameter直接放入使用fileNamePattern的bean的属性中。当然,这需要将bean的范围限定为“步骤”。这里有一个非常简单的例子来说明我的意思

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

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