什么是春季批处理"默认"上下文变量?



在Spring Batch step-Scope 文档中,有三个无法解释的弹簧批次上下文映射:jobParametersjobExecutionContextstepExecutionContext

SpringSource示例代码,合并:

<bean id="flatFileItemReader" scope="step"
  class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="var1" value="#{jobParameters['input.file.name']}" />
    <property name="var2" value="#{jobExecutionContext['input.file.name']}" />
    <property name="var3" value="#{stepExecutionContext['input.file.name']}" />
</bean>

jobParametersjobExecutionContextstepExecutionContext中可用的默认参数是什么?

春季批次版本1.x与2.x vs. 3.x中的可用内容之间也可能有所不同 - 该领域的文档非常稀缺。

没有任何默认值。将jobParametersjobExecutionContextstepExecutionContext视为具有辅助方法的荣耀Map,用于不同的原始数据类型,例如getInt()。它们通常从传递给*ExecutionListener s的StepExecutionJobExecution对象访问,或使用价值注入来注射,例如。@Value("#{jobParameters['foo']}")

在这种情况下,input.file.name只是开发人员选择的名称,例如也许对应于指定为CommandLineJobRunner的命令行作业参数。

#{jobParameters}#{jobExecutionContext}#{stepExecutionContext}是spel(spring expression语言)Jobparameters的对应器,Jobexecution和stepexection对象,可在后期绑定中可用,从对象。

他们支持访问为Map S,因此您可以访问与JobExecutionStepExecution关联的ExecutionContext,并访问JobParameters中存储的值。

还要检查阶梯文档以获取更多信息。

请参阅文档

jobparameters是启动作业时传递的参数

执行上下文是为了存储任何想要的东西。通常,步骤执行上下文将包含信息以允许步骤重新启动(用于重新启动作业)。

如果要在步骤之间传达信息,则可以将步骤执行上下文中的元素提升到作业执行上下文。

最新更新