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处理
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。