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技术、架构、互金行业大数据相关的技术源码解析的文章。