大家都知道我这段时间陆续更新了Spring系列源码分析以及各种扩展点的文章,到了今天可以总算可以更新这篇文章了
首先列举一下一个经典的面试题:Spring中Bean的生命周期:
- 开始初始化容器
- 加载
BeanFactoryPostProcessor
实现类 - 执行
BeanFactoryPostProcessor
的postProcessBeanFactory
方法 - 加载
BeanPostProcessor
实现类 - 实例化业务bean
Aware
接口族调用- 执行
BeanPostProcessor
实现类的postProcessBeforeInitialization
方法 - 执行
InitializingBean
实现类的afterPropertiesSet
方法 - 执行bean的
init-method
属性指定的初始化方法 - 执行
BeanPostProcessor
实现类的postProcessAfterInitialization
方法 - 初始化完成
- 关闭容器,执行
DiposibleBean
实现类的destory
- 执行bean的
destroy-method
属性指定的初始化方法
虽然这里仅仅是简单的列举了这么几条,但是这里面知识点却是非常的多,想要理解透这几条估计得费一番功夫。感兴趣的同学可以参考一下我之前的文章:
Spring扩展点之BeanPostProcessor
Spring扩展点之BeanFactoryPostProcessor
Spring扩展点之Aware接口族
Spring扩展点之FactoryBean接口
Spring事件监听机制
Spring源码解析系列汇总
彩蛋
明天开始更新SpringBoot源码解析系列文章!!!