<br/>
1、注解@EnableBatchProcessing :使用此注解执行批处理
<br/><br/>
2、spring batch 的 依赖:
<dependency> <groupId> org.springframework.boot</groupId> <artifactId>spring-boot-start-batch</artifactId> </dependency>
<br/><br/>
3、 创建Job
<br/><br/>
1.注入创建任务对象的对象
private JobBuilderFactory jobBuilderFactory;
<br/>
2.注入创建Step 对象的对象
private StepBuilderFactory stepBuilderFactory;
<br/>
3.创建任务对象
创建多个任务对象:
A. 第一种方法
@Bean public Job ****Job(){ // 指定任务执行什么step return jobBuilderFactory.get("****Job") .start(step1()) .next(step2()) .next(step3()) .build(); }
<br/>
B. 第二种方法,根据 每个step操作返回的不同状态,进行判定是否进入下一个step,或者进行其他处理流程。:
@Bean public Job ****Job(){ // 指定任务执行什么step return jobBuilderFactory.get("****Job") .start(step1()) .on("completed").to(step2()) .from(step2()).on("completed").to(step3()) // fail() stopAndRestart .from(step3()).end() .build(); }
<br/>
创建step对象:
@Bean public Step step1(){ return stepBuilderFactory.get("step1") .tasklet(new Tasklet() { @Override public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception { System.out.println("Hello Spring Batch"); return RepeatStatus.FINISHED; } }).build(); }
<br/>
4、将spring batch 数据库,替换为mysql 数据源
<br/>
A. 替换为mysql数据库需要添加的依赖
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
<br/>
B. 配置数据源
#配置spring batch job instance 等信息存放数据源 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test spring.datasource.username=root spring.datasource.password=123 #初始化spring batch job、step等信息存放的表,demo使用mysql #spring.datasource.schema=classpath:/org/springframework/batch/core/schema-mysql.sql spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect #spring.batch.initialize-schema=always #是否启动项目时候,自动执行job #spring.batch.job.enabled = false
<br/><br/><br/>