使用场景

典型的批处理程序通常是从数据库、文件或队列中读取大量数据,然后通过某些方法处理数据,最后将处理好格式的数据写回库中。通常SpringBatch工作在离线模式下,不需要用户干预、就能自动进行基本的批处理迭代,进行类似事务方式的处理。批处理是大多数IT项目的一个组成部分,而Spring Batch是唯一能够提供健壮的企业级扩展性的批处理开源框架。

业务场景

  • 定期提交批处理任务
  • 并发批处理:并行执行任务
  • 分阶段,企业消息驱动处理
  • 高并发批处理任务
  • 失败后手动或定时重启
  • 按顺序处理任务依赖(使用工作流驱动的批处理插件)
  • 局部处理:跳过记录(例如在回滚时)
  • 完整的批处理事务:因为可能有小数据量的批处理或存在存储过程/脚本

技术目标

  • 利用Spring编程模式:使开发者专注于业务逻辑,让框架解决基础功能
  • 在基础架构、批处理执行环境、批处理应用之间有明确的划分
  • 以接口形式提供通用的核心服务,以便所有项目都能使用
  • 提供简单的默认实现,以实现核心执行接口的“开箱即用”
  • 易于配置、定制和扩展服务,基于spring框架的各个层面
  • 所有的核心服务都可以很容易地扩展与替换,却不会影响基础系统层。
  • 提供一个简单的部署模型,通过Maven编译,将应用程序与框架的JAR包完全分离