Spring的IOC容器初始化流程IOC

本文深入解析了IOC(控制反转)的概念,将其比作一个巨大的HashMap,用于存放bean对象。阐述了IOC的初始化过程,包括spring如何加载bean,初始化BeanFactory,以及创建Bean的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是IOC

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

例:类 OrderServiceImpl

Map<String,Object> 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 .通过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工厂


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值