Spring的XML解析原理,这一次全搞懂再走( 九 )
很简单 , 拿到c标签对应的值 , 封装成ValueHolder , 再添加到BeanDefinition的ConstructorArgumentValues属性中去 , 这样就装饰完成了 。 讲到这里你可能会觉得 , 这和平时看到装饰器模式不太一样 。 其实 , 设计模式真正想要表达的是各种模式所代表的思想 , 而不是死搬硬套的实现 , 只有灵活的运用其思想才算是真正的掌握了设计模式 , 而装饰器模式的精髓就是动态的将属性、功能、责任附加到对象上 , 这样你再看这里是否是运用了装饰器的思想呢?装饰完成后返回BeanDefinitionHolder对象并调用BeanDefinitionReaderUtils.registerBeanDefinition方法将该对象缓存起来 , 等待容器去实例化 。 这里就是将其缓存到DefaultListableBeanFactory的beanDefinitionMap属性中 , 自己看看代码也就明白了 , 我就不贴代码了 。 至此 , Spring的XML解析原理分析完毕 , 下面是我画的时序图 , 可以对照看看:
文章插图
总结本篇是Spring源码分析的第一篇 , 只是分析了refresh中的obtainFreshBeanFactory方法 , 我们可以看到仅仅是对XML的解析和bean定义的注册缓存 , Spring就做了这么多事 , 并考虑到了各个可能会扩展的地方 , 那我们平时做的项目呢?看似简单的背后是否有深入思考过呢?
作者: 夜勿语
【Spring的XML解析原理,这一次全搞懂再走】原文链接:
推荐阅读
- 国家工业互联网标识解析二级节点(威海)上线
- 多就是好吗?解析智能手机多摄发展困局
- 新基建下,系统集成商数字化建设及渠道管理深度解析
- 四个维度解析区域发展与治理
- 基于Spring+Angular9+MySQL开发平台
- 智媒视角看深圳用数据解析城市
- “联邦的战斗力量”再现,华硕Z490主板机动战士高达版解析
- 天翼云全国首个工业互联网平台二级解析节点上线
- 在美国当快递小哥赚钱吗?西瓜视频解析除了努力,运气也很重要
- 蚂蚁庄园月有阴晴圆缺答案解析 12月18日今天支付宝蚂蚁庄园答案大全
