摘要: 1、实例化bean:反射的方式生成对象 2、填充bean的属性:populateBean(),进行依赖注入,这里可以扩展出循环依赖问题(三级缓存) 3、调用aware接口相关的方法:invokeAwareMethod(完成BeanName、BeanFactory、BeanClassLoader对象的 阅读全文
posted @ 2022-01-20 19:40 along-Blog 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 从总体到局部 总 控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来帮我们进行管理 DI(依赖注入):把对应的属性的值注入到具体的对象中,@Autowired,populateBean完成属性值的注入容器:存储对象,使用map结构来存储,在sp 阅读全文
posted @ 2022-01-20 18:23 along-Blog 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 1.循环依赖的产生 在spring中对象默认都是单例的 ,意味整个容器中只有一个该类的对象。 如图,B类有一个属性a,A类有一个属性b。当B类创建对象时,要给a属性赋值;当A类创建对象时,要给b属性赋值,从而产生循环依赖。只要打破当前的闭环,循环依赖就不存在了。 循环依赖产生的根本就是属性赋值。 属 阅读全文
posted @ 2021-12-29 12:58 along-Blog 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 容器和对象的创建流程 1.先创建容器 2.加载配置文件,封装成BeanDefinition 3.调用执行BeanFactoryPostProcessor 准备工作: 准备BeanPostProcessor 准备监听器,事件,广播器(观察者模式) 4.实例化 5.初始化 6.获取到完整对象 BeanD 阅读全文
posted @ 2021-12-26 14:38 along-Blog 阅读(588) 评论(0) 推荐(0) 编辑