先放一张图
初始化过程
1 调用beanFactoryPostProcessor 的无参构造函数 构建beanFactoryPostProcessor 调用 psotProcessorBeanfactory(),
2调用beanPostProcessor 无参构造函数
3调用InstantiationAwareBeanPostProcessorAdapter无参构造函数 构建InstantiationAwareBeanPostProcessorAdapter
3.1 调用本类(InstantiationAwareBeanPostProcessorAdapter) postProcessBeforeInstantiation() 方法
3.1.1调用bean中的无参构造函数
3.2调用本类(InstantiationAwareBeanPostProcessorAdapter)的postrocessorPropertyValue对已经实例化的bean注入属性
3.3调用BeanNameAware 接口的 setBeanName方法
3.4调用BeanFactoryAware的setBeanfactory方法
3.5 调用2中beanPostProcessor 的 postProcessorBeforInitalization 对实体类进行修改
3.6调用调用initializingBean接口的afterPropertySet方法
3.7 调用bean的init方法
3.8 调用2中beanPostProcessor中的postProcessorbeforInitialization
3.9调用本类(InstantiationAwareBeanPostProcessorAdapter)的postProcessAfterInitialization()方法
到此 springbean容器初始化完成
spring 容器销毁
4调用diPosiableBean接口 调用他的destory() 方法
5调用bean的destory方法
添加自己学习springBean生命周期的demo 地址 链接:https://pan.baidu.com/s/1lQftsR_xQedTfRiGwVDIzA 密码:nhzd