在文章 Springboot3.3.5 启动流程(源码分析) 中介绍了关键流程,本文详细介绍 AnnotationConfigServletWebServerApplicationContext 的创建。
备注: 本文未作任何申明时,默认 springboot 版本为 3.3.5
AnnotationConfigServletWebServerApplicationContext 类关系
Springboot 应用也是一个 spring 应用,下面我们先看看它的类关系:

AnnotationConfigServletWebServerApplicationContext 创建
创建入口
Springboot 中环境准备好后就开始创建应用上下文(ApplicationContext ), 它创建的是一个 ConfigurableApplicationContext。 在 web servlet 环境下通常创建的就是 AnnotationConfigServletWebServerApplicationContext。具体的创建位置位于 SpringApplication → run → createApplicationContext

创建流程
AnnotationConfigServletWebServerApplicationContext 创建详细时序图如下:
从以上时序图中可以看到, AnnotationConfigServletWebServerApplicationContext创建流程非常简单,下面我们从源码看看它的创建:
-
- createApplicationContext

- createApplicationContext
-
- ApplicationContextFactory 创建 applicationContext

- ApplicationContextFactory 创建 applicationContext
-
- ServletWebServerApplicationContextFactory 具体实现类创建 applicationContext
- 3.1在实例化
AnnotationConfigServletWebServerApplicationContext时,仅仅创建了一个AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner。

- 3.1在实例化
- ServletWebServerApplicationContextFactory 具体实现类创建 applicationContext
-
- AotDetector 探测是否启用了
aot(关于aot这里就不做介绍,可以参考官方文档), 如果没有启用aot则创建AnnotationConfigServletWebServerApplicationContext, 否则,创建ServletWebServerApplicationContext.

AnnotationConfigServletWebServerApplicationContext创建详细流程到此就介绍完了, 希望对各位小伙伴有所帮助。
- AotDetector 探测是否启用了
.
832

被折叠的 条评论
为什么被折叠?



