文章詳情頁
Spring數據庫多數據源路由配置過程圖解
瀏覽:31日期:2023-08-30 16:56:37
項目中需要根據不同業務進行分庫,首先是將業務不同業務映射到不同過的數據庫( biz --> db,可能存在多對一情況),
查看springjdbc源碼發現AbstractRoutingDataSource類作為一個數據源路由抽象類,可以擔當這個事情,其設計思想也比較簡單,
首先將多個數據源的映射關系自己維護完成后注入進來,然后自己定義一個路由規則,重點部分見代碼:
首先可以看到該類是一個抽象類,重點關注變量targetDataSource和resolvedDataSources.
其中targetDataSource用于將用戶建立的映射關系注入進來,可以通過如下方法
resolvedDataSources用于真正存儲依賴關系,targetDataSource僅僅是個中介,解析代碼見下圖
核心路由方法:
是不是很清楚,首先獲取數據源映射key,然后通過key獲取數據源
數據源映射獲取方法為抽象方法,見下圖:
實現時需要注意線程安全,最佳實現時通過ThreadLocal將在dbsql執行前將key設置進去,以便后來獲取這個key,
調用入口:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
標簽:
Spring
相關文章:
1. Python 的 __str__ 和 __repr__ 方法對比2. IntelliJ IDEA設置默認瀏覽器的方法3. Spring security 自定義過濾器實現Json參數傳遞并兼容表單參數(實例代碼)4. IntelliJ IDEA設置背景圖片的方法步驟5. docker /var/lib/docker/aufs/mnt 目錄清理方法6. Python TestSuite生成測試報告過程解析7. 學python最電腦配置有要求么8. JAMon(Java Application Monitor)備忘記9. Python Scrapy多頁數據爬取實現過程解析10. Python OpenCV去除字母后面的雜線操作
排行榜
