Spring Batch 是一个轻量级的批处理框架,批处理在企业生产中扮演着重要的角色,例如:新用户注册成功的通知短信,月末产品营收的汇总计算等。一个典型的批处理应用程序大致流程如下所示:(1)从数据库,文件或队列中读取大量记录。(2)以某种方式处理数据。(3)以修改之后的形式写回数据。Spring Batch 的功能非常强大,它的特性包括数据验证、格式化输出等实现复杂逻辑以及处理大数据的能力。

Spring Batch 架构

Spring Batch 的分层配置由三层组成,如下图所示:

spring-batch.png

Application:应用层,包括所有用来构建批处理的定制化代码和配置。业务逻辑、服务以及组织任务的配置等,都是应用层所关心的内容。应用层不不是在其他两层之上,而是封装了其他两层。

Batch Core:核心层,包含用于定义批处理域的所有部分。核心组件的元素包括作业(Job)和步骤(Step)接口,以及用来执行作业的如下两个接口:JobLauncher和JobParameters。

Batch Infrastructure:基础设施层,在处理任何东西前,都需要读取或写入文件、数据等。在任务失败后,必须能够进行重试,这些部分被认为是一些通用的基础设施。