是否有可能使作业参数成为可选的,如果未指定而不是抛出异常,它的计算结果为null?
我所追求的是像
之类的东西<bean id="fileNamePattern" class="java.lang.String" scope="step">
<constructor-arg value="#{jobParameters[fileNamePattern]}" />
</bean>
我可以作为属性传递给另一个bean来处理未指定fileNamePattern的情况。
答案 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。