1

如果未指定作业参数而不是抛出异常,是否可以使作业参数成为可选参数?

我所追求的是

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

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

4

1 回答 1

1

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

最常见的选项是将 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。

于 2011-09-01T10:30:29.473 回答