作者:opheliamaizi | 来源:互联网 | 2023-09-12 19:57
上篇文章我们用代码测试了一下他们的执行顺序
【Spring】实例化、初始化、InitializingBean等执行顺序(一)https://hongchenkezhan.blog.csdn.net/article/details/121038187
下面我们从源码的角度证明我们上篇文章的正确性。
看到了熟悉的 refresh() 方法
继续走下面的 doCreateBean()
先看 populateBean()
总结:
上面的源码图可以对应到上篇文章的执行顺序。
1、实例化之前 ——> 实例化(构造函数) ——> 实例化之后
2、初始化之前 ——> PostConstruct ——> 实现了InitializingBean接口 ——> init-method ——> 初始化之后
如果 postProcessBeforeInstantiation 返回不为空的话,顺序变为:
1、实例化之前 ——> 初始化之后