源码剖析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步的流程图
源码剖析bean的生命周期_第1张图片

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

你可能感兴趣的:(spring)