ShardingSphere Hint模式 SpringBoot + Mybatis


ShardingSphere Hint模式不需要對sql進行解析,就可以進行數據庫或者表的路由。下面貼一下代碼,關於SpringBoot + Mybatis + ShardingSphere怎樣結合。

配置文件,注意是DataSources 多了個s

 

 

啟動類,排除了DataSourceAutoConfiguration

 

 

然后ShardingSphere 的配置類

 

 

 

 

@Primary很關鍵。

現在就相當於你配置的數據源已經受ShardingSphere管理、攔截。你項目中所執行的sql相關的東西都會有ShardingSphere代理執行。

接下來是doSharding方法。

 

 

 

 

根據HintManager設置的業務相關的標識,判定數據庫,業務標識與數據庫之間的映射關系自由發揮。

availableTargetNames ShardingDataSourceFactory.createDataSource中所有的數據庫。

shardingValue HintManager設置的數據庫,通過比較設置數據源,HintManager中使用ThreadLocal只對當前線程生效,所以,如果某線程沒有設置數據源 可采取shardingValue 默認值的情況,設置默認數據源。

setDataSource是靜態方法,可在代碼中手動設置切換,同時也可封裝切面,在Dao層自動切換數據源,隨各位看官心情吧,有時間將會整理后上傳github

 

 

還有Spring 動態設置數據源切換,后續補充吧,Spring 動態數據源切換相對較多,ShardingSphere Hint 模式還比較少吧。

原創,有需要轉載請標明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM