Spring Batch核心组件介绍
Spring Batch核心组件介绍
每个作业Job有1个或者多个作业步Step;每个Step都有1个Tasklet;Tasklet有1个Chunk;一个Chunk中有Item Reader、Item Processor、Item Writer。
SpringBatch组件(领域对象)
- Job: 作业。批处理中的核心概念,是Batch操作的基本单元。
- Job Instance:作业实例。每个作业执行时,都会生成一个实例,实例会被存放在JobRepository中;如果作业失败,下次重新执行该作业的时候,会使用同一个作业实例;Job和Job Instance类似于Java类定义与Java对象之间的关系。
- Job Parameters:作业参数。它是一组用来启动批处理任务的参数。
- Job Execution:作业执行期。负责具体Job的执行,每次运行Job都会启动一个新的Job执行器。
- Job Repository:作业仓库。负责存储作业执行过程中的状态数据及结果。
- Job Launcher:作业调度器。根据给定的Job Parameters执行作业。
- Step:作业步。Job的一个执行环节,多个或者一个Step组装成一个Job。
- Step Execution:作业步执行器。负责具体Step的执行,每次运行Step都会启动一个新的执行器。
- Tasklet:Step中具体执行逻辑的操作,可以重复执行,可以设置具体的同步、异步操作。
- Execution Context:执行上下文。它是一组框架持久化与控制的key/value对,能够让开发者在Step Execution或JobExecution范畴保存需要进行持久化的状态。
- Chunk:Item集合。
- Item:一个Item指的是普通文件中的一行、数据库中的一行、XML文件中的一个元素。通常一个Item被映射到一个Java对象。比如数据库中人员信息表的一行对应到Java中的Person类。
- Item Reader:step中读取数据的组件。
- Item Processor:step中处理数据的组件。
- Item Writer:step中输出数据的组件。
- Step Flow:作业流。