共计 493 个字符,预计需要花费 2 分钟才能阅读完成。
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 处理
正文完