摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 实例化bean是一个非常复杂的过程,而其中比较难以理解的就是对循环依赖的解决, 不管之前读者有没有循环依赖方面的研究,这里有必要先对此知识点稍作回顾。 一. 什么是循环依赖 循环依赖就是循环 阅读全文
posted @ 2018-07-28 17:11 写出高级BUG 阅读(1179) 评论(0) 推荐(0) 编辑
摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 我们不可能指望在一个函数中完成一个复杂的逻辑,而且我们跟踪了这么多Spring代码, 经历了这么多函数,或多或少也发现了一些规律:一个真正干活的函数其实是以do开头的, 比如 doGetOb 阅读全文
posted @ 2018-07-28 15:59 写出高级BUG 阅读(2471) 评论(0) 推荐(1) 编辑
摘要: 本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 之前我们讲解了从缓存中获取单例的过程,那么,如果缓存中不存在已经加载的单例bean就需要从头开始bean的加载过程了,而Spring使用getSingleton的重载方法实现bean的加载过 阅读全文
posted @ 2018-07-28 15:12 写出高级BUG 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 在getBean方法中,getObjectForBeanlnstance是个髙频率使用的方法,无论是从缓存中获得bean还是根据不同的scope策略加载bean。总之,我们得到bean 阅读全文
posted @ 2018-07-28 14:44 写出高级BUG 阅读(1728) 评论(0) 推荐(1) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了。前面已经提到过,单 例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例缓存中获取,当然 阅读全文
posted @ 2018-07-28 13:57 写出高级BUG 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量 阅读全文
posted @ 2018-07-28 13:27 写出高级BUG 阅读(1182) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 经过前面的分析,我们终于结束了对XML配置文件的解析,接下来将会面临更大的挑战,就是对bean加载的探索。bean加载的功能实现远比bean的解析要复杂得多。同样,我们还是以最开始的示 阅读全文
posted @ 2018-07-28 12:11 写出高级BUG 阅读(1418) 评论(1) 推荐(2) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 对配置文件解析完成后,获取的beanDefiniton已经可以进行使用了,剩下的唯一工作就是注册了,也就是processBeanDefinition方法中的BeanDefinition 阅读全文
posted @ 2018-07-28 02:08 写出高级BUG 阅读(3854) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 到这里我们已经完成了分析默认标签的解析与提取过程,或许涉及的内容太多,我们已经忘了是从哪个函数开始了,我们再次回顾下默认标签解析函数的起始函数: 我们已经用了大量的篇幅分析了BeanD 阅读全文
posted @ 2018-07-28 01:10 写出高级BUG 阅读(1373) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码。若有描述错误之处,欢迎指正。 在上一篇中已经完成了XML文档到GenericBeanDefiniton的转化,也就是说,XML中所有的配置都在GenericBeanDefinition的实例类中找到了对应的位置。 阅读全文
posted @ 2018-07-28 00:31 写出高级BUG 阅读(4175) 评论(0) 推荐(0) 编辑