Spring Batch官网介绍:A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.(一款轻量的、全面的批处理框架,用于开发强大的日常运营的企业级批处理应用程序。)
框架主要有以下功能:
- Transaction management(事务管理)
- Chunk based processing(基于块的处理)
- Declarative I/O(声明式的输入输出)
- Start/Stop/Restart(启动/停止/再启动)
- Retry/Skip(重试/跳过)
框架设计图:
框架一共有有4个主要角色:
(1)JobLauncher是任务启动器,通过它来启动任务。
(2)Job代表着一个具体的任务。
(3)Step代表着一个具体的步骤,一个Job可以包含多个Step。
(4)JobRepository是存储数据的地方,可以看做是一个数据库的接口,在任务执行的时候需要通过它来记录任务状态等等信息,本文对其无使用。
详细不做介绍,因为springbatch只是一个批处理框架,所以本文带大家了解如何通过spring scheduler 结合springBatch实现定时调度,贴代码。
首先新建一个tasklet继承Tasklet接口(即一个step)
然后配置xml,把这个类注册成一个bean并关联到注册好的step,再关联到注册好的job中。
接下来,自己封装一个batchJobLauncher
之后把batchJobLauncher注册为bean,并把里面的属性关联之前注册的job
最后集成spring scheduler,让它定时去调执行器执行任务。
关于corn的配置可以自行百度。