SpringBoot整合SpringBatch項目,已將代碼開源至github,訪問地址:https://github.com/cmlbeliever/SpringBatch 歡迎star or fork!css
最近因爲項目須要開始研究SpringBatch,而且將其整合到SpringBoot中,去除繁雜的xml配置,使用註解,基於約定優於配置的思路進行整合。作到能夠很是簡單的根據業務需求進行配置,添加新的Batch。java
該項目的主要整合了Spring,SpringBoot,Mybatis,DBCP等經常使用框架,支持DB讀寫分離。一個註解便可添加新的Batch。git
Batch配置約定說明:github
一、/db目錄下的sql爲當前項目所用到的ddlsql
二、項目運行參數說明markdown
- batchName(required) : 該batch名稱,例如運行bat00X,則參數爲:batchName=bat00X
- logging.config(optional) : log配置所在的位置,一般本地運行時不須要關心此參數。在發佈到開發機或本番時須要傳入。格式:logging.config=${filePath},例如運行bat00X,則參數爲:logging.config=classpath:logback-bat00X.xml
三、src/main/java工程結構說明mybatis
- com.cml.learning.framework 爲框架基礎配置包,一般狀況不作修改
- com.cml.learning.module 爲每一個batch對應的模塊信息,須要開發者本身實現
四、src/main/resource工程結構說明app
- application.properties 全局配置properties
- logback.xml 默認的log配
- config/jdbc-r.properties 只讀db配置
- config/jdbc-rw.properties 讀寫db配置
- config/log 每一個batch對應的log配置
- config/module 每一個batch對應的properties配置信息
五、項目約定說明框架
- 每一個batch類都須要添加註解@BatchAnnotation用於標識batch運行環境
每一個batch對應有本身的Configuration,用於配置SpringBatch運行信息ui
全部batch統一在包(com.cml.learning.module)下,根據batch名稱定義包名
如: com.cml.learning.module.batch001
每一個batch繼承com.cml.learning.framework.module.BaseModule而且實現接口 com.cml.learning.framework.constant.ModuleConst
- 只讀Mapper須要繼承com.cml.learning.framework.mybatis.marker.ReadMapper,而且Mapper名稱以ReadMaper結尾
- 只讀Mapper對應的xml以read.sql.xml結尾,且名稱爲當前batch名,例如bat001的只讀xml爲:bat001.read.sql.xml
- 讀寫Mapper須要繼承com.cml.learning.framework.mybatis.marker.WriteMapper,而且Mapper名稱以WriteMapper結尾
- 讀寫Mapper對應的xml以write.sql.xml結尾,而且名稱爲當前batch名,,例如bat001的讀寫xml爲:bat001.write.sql.xml
- DB所對應的bean在每一個batch下的beans包下,如bat001 對應的bean在包:com.cml.learning.module.bat001.beans下,Mybatis 會自動掃描此包下對應的bean
- processor,reader,writer都有對應的基類,每一個batch下對應的模塊都須要繼承對應的基類。
該項目會不斷完善,若有意見或建議,歡迎提出。