Spring Batch 批處理(2) - 搭建及運行

搭建spring batch 項目

<br/>java

一、註解@EnableBatchProcessing :使用此註解執行批處理
<br/><br/>mysql

二、spring batch 的 依賴:spring

<dependency>
<groupId> org.springframework.boot</groupId>
<artifactId>spring-boot-start-batch</artifactId>
</dependency>

<br/><br/>sql

三、建立Job
<br/><br/>數據庫

1.注入建立任務對象的對象ide

private JobBuilderFactory jobBuilderFactory;spring-boot

<br/>ui

2.注入建立Step 對象的對象url

private StepBuilderFactory stepBuilderFactory;spa

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

四、將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/>

相關文章
相關標籤/搜索