sharding-jdbc源碼解析之spring集成

spring集成配置解析java

本文轉自「天河聊技術」微信公衆號spring

 

找到spring的handler這個類微信

上圖中是對sharding-jdbc的三個標籤的解析,咱們此次主要分析分片配置的解析,讀寫分離的配置解析也是同樣的邏輯架構

咱們看到上圖中的init的方法第一行是對分片策略的解析,進入到初始化的這個類中大數據

進入到上圖中的業務方法,根據傳進來的xml節點對象,也就是strategy的xml節點對象進行下一步解析xml

咱們跟蹤上圖的第一行代碼的rootBeanDefinition方法進去發現這個方法對象

factoryMethodName這個屬性值賦值爲null,接着在進入到下個方法內element

spring初始化bean有兩種方法,一種是工廠方法模式、一種就是直接調用無參構造器進行初始化bean,上面咱們看到是調用的StrategyConfig這個類的無參構造器初始化的bean,咱們在返回到上級的這個方法源碼

最後調用了bean構造器工廠對象的方法對StrategyConfig對象的參數進行賦值it

咱們在返回到上圖的這行代碼

對data-source節點進行解析,這個節點的下級節點比較多,因此解析的邏輯比較複雜,這也是咱們今天配置解析的重點了,咱們進入到這個類ShardingJdbcDataSourceBeanDefinitionParser的parseInternal方法,咱們進入到這個方法

對SpringShardingDataSource這個對象進行初始化,咱們看下怎麼對這個對象進行初始化的

這個類的構造方法有兩個參數

factory.addConstructorArgValue(parseShardingRuleConfig(element, parserContext));這行代碼是對SpringShardingDataSource的構造方法賦值

咱們進入到這個方法

咱們進入上圖的這個方法,主角終於出場了,咱們進入這個方法

進入上圖的方法

返回上一級進入到這個方法

返回上一級進入到這個方法

最後這裏是對屬性的解析

配置解析第一部分完成了,內容比較多分兩篇來寫,咱們總結下到如今配置解析封裝成了幾個對象

StrategyConfig對象

ShardingRuleConfig分片規則配置對象

TableRuleConfig表規則配置對象

 

本次分享到這裏結束了,不對的地方歡迎留言指正,以上內容僅供參考。

 

歡迎關注本人微信公衆號「天河聊技術」,有更多javaWeb技術、架構、互金行業大數據相關的技術源碼解析的文章。

相關文章
相關標籤/搜索