源码剖析bean的生命周期

1.IOC容器从xml文件、java配置或注解配置中读取BeanDefinition

2.BeanDefinition分为普通BeanDefinition和特殊BeanDefinition(实现spring指定的某些接口),IOC容器会先实例化特殊BeanDefinition,这些特殊对象调用特定接口(例如BeanFactoryPostProcessor接口、BeanPostProcessor等),其中BeanFactoryPostProcessor可以动态的修改BeanFactory中的普通BeanDefinition

3.根据普通BeanDefinition实例化bean,即Instantiation

4.对bean进行属性赋值,即Populate

5.bean进行初始化,即Initialization

6.bean销毁,即Destruction

第3-5步的流程图

InstantiationAwareBeanPostProcessor是一种特殊的BeanPostProcessor,spring aop替换对象的时候是在 postProcessAfterInitialization处理

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理