03 2018 档案

摘要:我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢。其实一共有两个触发点,但是最后实际上调用的是同一个方法。 第一个:在AbstractApplicationContext的refresh()方法中,容器会初始化lazy-init=false的b 阅读全文
posted @ 2018-03-26 23:09 两条闲鱼 阅读(436) 评论(0) 推荐(0)
摘要:引言 循环依赖就是多个类之间互相依赖,比如A依赖B,B也依赖A,如果日常开发中我们用new的方式创建对象,这种循环依赖就会导致不断的在创建对象,导致内存溢出。 Spring是怎么解决循环依赖的问题的?我们结合Spring源码来看一下。 第一种:构造器参数循环引用,单例 创建两个测试类: Spring 阅读全文
posted @ 2018-03-21 19:26 两条闲鱼 阅读(405) 评论(0) 推荐(0)
摘要:通过上一篇源码的分析已经完成了BeanDefinition资源文件的定位,本篇继续分析BeanDefinition资源文件的载入和解析。 AbstractBeanDefinitionReader的loadBeanDefinitions(String location,Set<Resouce> act 阅读全文
posted @ 2018-03-15 18:43 两条闲鱼 阅读(5821) 评论(0) 推荐(0)
摘要:IOC容器的初始化过程主要包括BeanDefinition的Resource定位、载入和注册。在实际项目中我们基本上操作的都是ApplicationContex的实现,我们比较熟悉的ClassPathXmlApplicationContext、FileSystemXmlApplicationCont 阅读全文
posted @ 2018-03-05 16:21 两条闲鱼 阅读(846) 评论(0) 推荐(1)