Spring Batch是一个轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。Spring Batch构建了人们期望的Spring Framework特性(生产力,基于POJO的开发方法和一般易用性),同时使开发人员可以在必要时轻松访问和利用更高级的企业服务。Spring Batch不是一个schuedling的框架。
    Spring Batch提供了可重用的功能,这些功能对于处理大量的数据至关重要,包括记录/跟踪,事务管理,作业处理统计,作业重启,跳过和资源管理。它还提供更高级的技术服务和功能,通过优化和分区技术实现极高容量和高性能的批处理作业。
    Spring Batch可用于两种简单的用例(例如将文件读入数据库或运行存储过程)以及复杂的大量用例(例如在数据库之间移动大量数据,转换它等等) 上)。大批量批处理作业可以高度可扩展的方式利用该框架来处理大量信息。

    Spring Batch的一个总体的架构如下:
    image.png

    JobRepoository数据持久化帮助其他组件存储数据对象,
    JobLauncher用来启动一个Job实例,一个Job 包含多个Step(步骤):ItemReader (读取数据)、ItemProcessor(处理数据)以及 ItemWrite(写入数据)。

    • JobSynchronizationManager
    • FlowJob
    • SimpleFlow
    • StepState
    • SimpleStephandler
    • AbstractStep