β

SpringBatch 3 基礎使用教學

Harries Blog™ 76 阅读

批次作業如果要處理的比較好 其實有非常多細節還是要去處理 比如 排程執行的紀錄 資料輸入輸出的統計 每一個 任務的成功失敗 資料流…等等…到 Retry / Sk ip 的處理.

這邊開發時是使用 Spring Boot 1.5.9 所以搭配的是 Spring Batch 3.0.8 , 現在 SpringBoot 2 發佈出來了, 搭配的是 Spring Batch 4.0.0, 如果開新專案建議直接開 SpringBoot 2 來開發吧, 後面再整理一下 Spring Batch 4.0.0 的寫法.

基本上呢, 就是下圖這樣的架構

SpringBatch 3 基礎使用教學

最小的 Step 就是由 ItemReader(讀來源) -> ItemProcessor(處理) -> ItemWriter(寫結果) 作為一次的處理動作

複數的 Step 可以組合在一起變一個 大的 Job 就這樣而已

而每一個 Step 的啟動 結束 成功失敗 讀多少筆資料 處理筆數 寫入筆數 都會完整記錄在 資料庫 中, 也可以大概知道排程處理資料的結果.

下面這是啟動的主程式

import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.context.ApplicationContext;  
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;  
import org.springframework.scheduling.annotation.EnableAsync;  
import org.springframework.scheduling.annotation.EnableScheduling;  
  
import java.util.TimeZone;  
  
@EnableAsync  
@EnableScheduling  
@EnableJpaAuditing  
@EnableBatchProcessing  
@SpringBootApplication  
public class ImportApplication {  
    public static void main(String/[/] args) {  
        TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));  
  ApplicationContext context = SpringApplication.run(ImportApplication.class, args);  
  }  
}
作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:SpringBatch 3 基礎使用教學, 感谢原作者分享。

发表评论