大家都知道我这段时间陆续更新了Spring系列源码分析以及各种扩展点的文章,到了今天可以总算可以更新这篇文章了

首先列举一下一个经典的面试题:Spring中Bean的生命周期:

  1. 开始初始化容器
  2. 加载BeanFactoryPostProcessor实现类
  3. 执行BeanFactoryPostProcessorpostProcessBeanFactory方法
  4. 加载BeanPostProcessor实现类
  5. 实例化业务bean
  6. Aware接口族调用
  7. 执行BeanPostProcessor实现类的postProcessBeforeInitialization方法
  8. 执行InitializingBean实现类的afterPropertiesSet方法
  9. 执行bean的init-method属性指定的初始化方法
  10. 执行BeanPostProcessor实现类的postProcessAfterInitialization方法
  11. 初始化完成
  12. 关闭容器,执行DiposibleBean实现类的destory
  13. 执行bean的destroy-method属性指定的初始化方法

虽然这里仅仅是简单的列举了这么几条,但是这里面知识点却是非常的多,想要理解透这几条估计得费一番功夫。感兴趣的同学可以参考一下我之前的文章:
Spring扩展点之BeanPostProcessor
Spring扩展点之BeanFactoryPostProcessor
Spring扩展点之Aware接口族
Spring扩展点之FactoryBean接口
Spring事件监听机制
Spring源码解析系列汇总

彩蛋

明天开始更新SpringBoot源码解析系列文章!!!

05-24 09:33