Spring Batch的配置檔案解讀

2021-06-28 17:11:04 字數 1395 閱讀 4203

<?xml version="1.0" encoding="utf-8"?>

(...)

,用來校驗工作引數(job parameters),可以實現jobparametersvalidator介面。

如果無法通過驗證,會丟擲jobparametersinvalidexception異常。spring batch提供了乙個預設的實現類defaultjobparametersvalidator,完成絕大部分的工作。如果還是無法滿足需求,可以自己編碼實現介面。

例項:

(...)

date

productid

step listener 作為tasklet標籤的乙個子標籤進行配置。用來跟蹤step的處理過程。

steploglistener" class="test.steploglistener"

scope="step">

利用監聽來出力step執行前後的log

注意:listeners標籤,提供merge屬性,可以用來合併parent和自身的listener

多個step之間的並行化,可以提高批處理的效率。什麼情況下可以應用step之間的並行化,那就要根據具體的業務需求來定。

那我們假設有這樣一種場景:有一類資料,分別存在於檔案和資料庫,資料的內容一樣,只是形式不一樣,那麼我們可以定義並行的step來分別處理來自檔案的資料和來自資料庫的資料,然後,分別進行同樣的processor,然後寫入資料庫。

task-executor指定了乙個非同步任務執行器 ******asynctaskexecutor,該執行器將會按照配置建立指定數目的執行緒來進行資料處理。通過這種方式,避免了我們手動建立並管理執行緒的工作,使我們只需要關注業務處理本身。

表 1. 任務執行器列表

類名描述

是否非同步

synctaskexecutor 

簡單同步執行器

否throttledtaskexecutor 

該執行器為其他任意執行器的裝飾類,並完成提供執行次數限制的功能

視被裝飾的執行器而定

******asynctaskexecutor 

簡單非同步執行器,提供了一種最基本的非同步執行實現

是workmanagertaskexecutor 

該類作為通過 jca 規範進行任務執行的實現,其包含 jbossworkmanagertaskexecutor 和 glassfishworkmanagertaskexecutor 兩個子類

是threadpooltaskexecutor 

執行緒池任務執行器

SpringBatch 配置Job之二

step scope step scope時springbatch框架提供的自定義的scope,將springbean定義為step scope,支援springbean在step開始的時候初始化,在step結束的時候銷毀springbean,將 springbean的生命週期與step繫結。在sp...

SpringBatch的流程簡介

springbatch的流程圖如下 每個batch都會包含乙個job。job就像乙個容器,這個容器裝了若干step,batch中實際幹活的也就是這些step,至於step幹什麼活,無外乎讀取資料,處理資料,然後將這些資料儲存起來 itemreader用來讀取資料,itemprocessor用來處理資...

spring batch中用到的表

1,批量表的字首 來自類abstractjdbcbatchmetadatadao中的變數default table prefix 2,job execution 存放job執行的相關資料,包括job執行的結果,job結束時狀態,job開始時間,job結束時間,版本號,job的例項id,job的執行i...