12.7 Contexts

JSR-352 定义了两个上下文对象: javax.batch.runtime.context.JobContextjavax.batch.runtime.context.StepContext, 分别用来处理 job/step 的元数据(meta-data)信息. JobContext 和 StepContext对象在所有的 step 级别的组件中都是可用的(如 Batchlet, ItemReader, 等); 当然, JobContext对象在 job 级别的组件中也是可见的(比如 JobListener).

要获取当前 scope的 JobContext 和 StepContext 对象引用,请使用 @Inject 注解:

  1. @Inject
  2. JobContext jobContext;

[提示] @Autowire for JSR-352 contexts

在这一类的上下文注入中, 不支持Spring的 @Autowire 注解.

在 Spring Batch 中, JobContext 和 StepContext 封装了相应的执行对象 (分别是 JobExecution 以及 StepExecution ). 在 Spring Batch 的 StepExecution#executionContext 中通过 StepContext#persistent#setPersistentUserData (序列化)保存 Data.