Spring Bean生命周期底层源码

1.new ClassPathXmlApplicationContext入口

2.构造方法,点进去

3.设置xml的指定文件,告诉系统去哪里读取xml文件

4.refresh的值恒等于true,进入refresh方法

5.准备工作:例如

 

5.1设置启动时间,设置容器关闭为false,设置容器容器为活跃true 

5.2准备环境对象

5.3创建set集合

6.创建BeanFactory

6.1refreshBeanFactory刷新BeanFactory

6.1.1先判断有没有BeanFactory,如果有的话销毁BeanFactory,没有的话创建BeanFactory,第一次创建的BeanFactory名为DefaultListableBeanFactory

该方法loadBeanDefinitions(beanFactory)加载配置文件中bean定义信息并封装成BeanDefinition对象;

7.准备工作,给BeanFactory填充属性值

8.空方法,在需要的时候做功能扩展

9.调用BeanFactoryPostProcessors,可以对Bean标签定义的属性进行修改添加等

10.向BeanFactory注册BeanFactoryPostProcessors

11.做国际化处理

12.多播器,便于以后发布事件监听

13.注册监听器

14.实例化单例Bean队对象

14.1beanFactory.preInstantiateSingletons();该方法就是实例化所有单例,非懒汉加载的Bean对象

15发布相应事件

 16销毁Bean以避免挂起资源

 

17重置活动标志

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值