02.SpringBatch核心API_数据

        上图突出显示了构成 Spring Batch 领域语言的关键概念。作业有一个到多个步骤,每个步骤恰好具有一个​​ItemReader​​​,一个​​ItemProcessor​​​和一个​​ItemWriter​​​。需要启动一个作业(使用​​JobLauncher​​​),并且需要存储有关当前正在运行的进程的元数据(在​​JobRepository​​中)。         

核心API

02.SpringBatch核心API_数据_02

【JobInstance】该领域概念和Job的关系与javal实例和类的关系一样,Job定义了一个工作流程,JobInstance就是该工作流的一个具体实例。一个Job 可以有多个JoJbInstance。多个JobInstance之间的区分 就要靠另外一个领域概念JobParameters了。

【JobParameters】是一组可以贯穿整个Job的运行时的配置参数。不同的配置将产生不同的JobInstance,如果你是使用相同的JobParameters运行同一个Job,那么这次运行会重用上一次创建的JobInstance。另外,SpringBatch还非常贴心提供了让JobParameters中的部分参数不参与JobInstnce区分的

【JobExecution】该领域概念表示JobInstance的一次运行。JobInstance运行时可能会成功或者失败,每一次JobInstance的运行都会产生一个JobExecution。同一个JobInstance(JobParameters相同)可以多次运行,这样该JobInstance将对应多个JobExecution。JobExecution记录了一个jobInstance

【StepExecution】类似于JobExecution。该领域对象表示step的一次运行,因此一个StepExecution会关联到一个jobExecution。另外,该对象还会存储很多与该次step运行相关的所有数据。因此该对象有很多属性,并且需要持久化支持一些Spring batch 的特性。

【ExecutionContext】从前面的JobExecution。StepExecution的属性介绍中已经提到了该领域概念,说穿了,该领域概念就是一个容器,该容器由Batch框架控制。框架会对该容器持久化,开发人员可以使用该容器保存一些数据,以支持整个Batch或者整个Step中共享这些数据