Spring容器加载bean的过程

1、我们通过xml或注解或配置编写代码方式声明bean的信息.
2、Spring都会把他们解析成一个BeanDefinition。每一个Bean对应一个BeanDefinition同时注册到BeanDefinitionRegistry,抽象类AbstractBeanDefinitionReader根据注册的BeanDefinitionRegistry得到bean的所有信息.
3、接着会进入到AbstractApplicationContext 的refresh()方法,这个方法包含了很多重要的方法
4、实例化BeanFactoryPostProcessor实现类,执行BeanFactoryPostProcessor的postProcessBeanFactorty方法创建工厂,接下来就是在工厂中实例化bean的。
5、在BeanFactory工厂中会实例化BeanPostProcessor实现类和InstantiationAwareBeanPostProcessorAdapter实现类。
6、执行InstantiationAwareBeanPostProcessorAdapter的postProcessBeforeInstantoation方法,接着执行bean的构造器
7、执行InstantiationAwareBeanPostProcessorAdapter的postProcessPropertyValues方法,为Bean注入属性。
8、调用BeanNameAware的setBeanName方法,以及调用BeanFactoryAware的setBeanFactory方法。
9、执行BeanPostProcessor的postProcessBeforeInitialization方法,调用InitializingBean的afterPropertiesSet方法,调用bean的init-method属性指定的初始化方法。执行BeanPostProcessor的PostProcessAfterInitialization方法

10、容器初始化成,执行正常调用后,下面开始摧毁容器。调用DiposibleBean的destory方法,调用bean的destory-method属性指定的初始化方法

实例化过程是在docreateBean 方法中,这也是一个很重要的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值