SpringBoot 整合SpringBatch實際項目改造

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下對應的模塊都須要繼承對應的基類。

該項目會不斷完善,若有意見或建議,歡迎提出。

相關文章
相關標籤/搜索