spring源码分析—— 初始化(aware接口的初始化)

 

  前面说了三种bean的初始化方式,都是自定义的初始化方式,其实spring容器还提供了好多后置接口,

使bean有用更多的功能,例如常用的有ApplicationContextAware,BeanNameAwre等等,我们来看看怎么实现的?

1:准备工作

 

 从运行结果可以看出,spring容器的初始化是在自定义的初始化方法之前完成的,

 

 

2:下面来看看源码怎么实现的

在初始化方法initializeBean方法中,首先会invokeAwareMethods方法

 

 

 

 

 

 

然后会调用applyBeanPostProcessorBeforeInitialization方法,因为beanPostProcessors集合在注册时是有序的,所以高优先级的都在前面:第一个就是ApplicationContextAwareProcessor

 

 

 

 调用接口初始化:

 

 

spring容器的初始化基本就是这两种实现方式。

总结:从这两节可以看出,spring容器初始化,首先会初始化容器中预留的后置接口,然后在初始化自定义的初始化接口。

 

posted @ 2020-07-02 14:40  warrior1234  阅读(410)  评论(0编辑  收藏  举报