Spring的IOC容器初始化流程IOC
1. 什么是IOC
IOC: 很大的HashMap 对象 , 来盛放bean 对象
例:类 OrderServiceImpl
Map
map.put(“orderServiceImpl”,new OrderServerImpl());
key:首字母小写, value 新new出来的对象
在Controller 里面 通过
Controller {
@autowired
OrderServiceImpl orderServiceImpl; //map.get(“orderServiceImpl”) 来获取对象值
}
2.IOC 的初始化过程
2.1 spring 加载bean
1.spring 启动时会通过容器载入类ClassPathXmlApplicationContext(“beans.xml”)把配置文件里面的java bean 加载到IOC MAP 容器里面
2.2 初始化过程
1 .通过refresh()方法里的, finishBeanFactoryInitialization()方法, 先初始化BeanFactory,
2. 通过getBean() 收集所有bean 的实例名,放到ArrayList 里面
3. 通过 getSingleton() 方法遍历ArrayList 的实例名,先看内存IOC map 里面有没有这个bean, 有就返回, 没有就生产
4. 若在IOC 里面没找到这个bean, 则先通过BeanFactory创建Bean( BeanFactory是用来创建和生成bean 的, 创建IOC 前要先创建BeanFactory )
2.3 创建Bean过程
1. 创建 bean createBeanInstance()
2. 给属性赋值 populateBean()
3. 初始化 bean
4. 将bean 放入IOC map 里面
5.完成 finshRefresh()
6.close()把bean 释放 关闭bean工厂
还没有评论,来说两句吧...