Spring的IOC容器初始化流程IOC

忘是亡心i 2022-03-18 05:41 386阅读 0赞

1. 什么是IOC

IOC: 很大的HashMap 对象 , 来盛放bean 对象

例:类 OrderServiceImpl

Map map=new HashMap<>
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. 1 .通过refresh()方法里的, finishBeanFactoryInitialization()方法, 先初始化BeanFactory
  2. 2. 通过getBean() 收集所有bean 的实例名,放到ArrayList 里面
  3. 3. 通过 getSingleton() 方法遍历ArrayList 的实例名,先看内存IOC map 里面有没有这个bean 有就返回, 没有就生产
  4. 4. 若在IOC 里面没找到这个bean 则先通过BeanFactory创建Bean BeanFactory是用来创建和生成bean 的, 创建IOC 前要先创建BeanFactory

2.3 创建Bean过程

  1. 1. 创建 bean createBeanInstance()
  2. 2. 给属性赋值 populateBean()
  3. 3. 初始化 bean
  4. 4. bean 放入IOC map 里面
  5. 5.完成 finshRefresh()
  6. 6.close()把bean 释放 关闭bean工厂

发表评论

表情:
评论列表 (有 0 条评论,386人围观)

还没有评论,来说两句吧...

相关阅读