Spring Batch 批处理(2) – 搭建及运行

搭建spring batch 项目

<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/>

原文 

https://segmentfault.com/a/1190000021963772

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Spring Batch 批处理(2) – 搭建及运行

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址