程序员spring boot源码解析

SpringBoot启动 源码深度解析(二)

2020-05-09  本文已影响0人  凡毓不凡

SpringBoot 版本 : 2.2.1.RELEASE
入口类: SpringApplication;SpringApplicationBuilder
说明 : 由于SpringBoot建立在Spring之上,所以分析SpringBoot的启动过程其实与Spring是交错进行的,分析的时候会顺带将一些Spring的扩展点也提到
注:本文主要讲解一些比较重要的关键步骤,不能面面俱到,若有疑问,随时保持沟通

SpringBoot启动 源码深度解析(一)
SpringBoot启动 源码深度解析(三)
SpringBoot启动 源码深度解析(四)

3. AbstractApplicationContext.refresh() 函数

总结:1. BeanDefinetionRegistrarPostProcessor 回调时机早于 BeanFactoryPostProcessor,通过上下文直接调用applicationContext.addBeanFactoryPostProcessor() 方法注册的bean后置处理器最先调用

  1. 对于BeanDefinetionRegistrarPostProcessor 实例, PriorityOrdered类型的回调时机 早于Ordered类型的,Ordered类型的回调时机早于没有设置排序的.
  2. 对于同是BeanFactoryPostProcessor类型的处理器,如果处理器也是BeanDefinetionRegistrarPostProcessor 类型的,回调时机早于ApplicationContextIntializer实例里面通过applicationContext.addBeanFactoryPostProcessor() 添加的处理器
    invokeBeanFactoryPostProcessors 调用结束

文章要是勘误或者知识点说的不正确,欢迎评论,毕竟这也是作者通过阅读源码获得的知识,难免会有疏忽!

上一篇 下一篇

猜你喜欢

热点阅读