SpringBatch 简单介绍
1.SpringBatch 是什么
SpringBatch 是一个大数据量的并行处理框架。通常用于数据的离线迁移,和数据处理,⽀持事务、并发、流程、监控、纵向和横向扩展,提供统⼀的接⼝管理和任务管理;SpringBatch是SpringSource和埃森哲为了统一业界并行处理标准为广大开发者提供方便开发的一套框架。
官方地址:github.com/spring-projects/spring-batch
SpringBatch 本身提供了重试,异常处理,跳过,重启、任务处理统计,资源管理等特性,这些特性开发者看重他的主要原因;
SpringBatch 是一个轻量级的批处理框架;
SpringBatch 结构分层,业务与处理策略、结构分离;
任务的运行的实例状态,执行数据,参数都会落地到数据库;
2.Spring Batch框架工作原理
一个 Batch
(批处理)过程由一个 Job
(作业)组成。这个实体封装了整个批处理过程。
一个 Job
(作业)可以由一个或多个 Step
(步骤)组成。在大多数情况下,一个步骤将读取数据(通过 ItemReader
),处理数据(使用 ItemProcessor
),然后写入数据(通过 ItemWriter
)。
JobLauncher
处理启动一个 Job
(作业)。
最后, JobRepository
存储关于配置和执行的 Job
(作业)的元数据。
3.Spring Batch的分层架构
- Insfrastructure 策略管理:包括任务的失败重试,异常处理,事务,skip,以及数据的输入输出(文本文件,DB,Message)
- Core: springBatch 的核心,包括JobLauch,job,step等等
- Application: 业务处理,创建任务,决定任务的执行方式(定时任务,手动触发等)
4.用spring initialize来生成项目,
在https://start.spring.io/ 这个页面里,直接选择依赖项是spring batch
点击下面的generate 会自动生成项目代码。下载下来,然后进行具体业务逻辑的编写 。
生成的文件的目录结构如下
pom.xml: Maven项目中的xml配置文件 ,
5.关于Spring boot
使用spring boot 是为了让项目可以直接运行,在默认生成的xxxApplication类中有一个main方法 ,使用
SpringApplication.run来启动应用 程序 。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
参考:
还不快抢沙发