Spring Boot 启动时 Web 服务器创建流程:`createWebServer()` 方法调用分析
在 Spring Boot 启动时,SpringApplication 类的 run() 方法调用了 createWebServer() 方法来创建 Web 服务器。
具体的调用流程如下:
SpringApplication.run()方法会先创建一个SpringApplication实例,并调用其run()方法。SpringApplication.run()方法中会调用SpringApplication的createApplicationContext()方法来创建应用上下文。createApplicationContext()方法会根据配置和类路径来创建一个ConfigurableApplicationContext实例,其中包括了 Spring 的 Bean 容器和其他必要的配置。- 接着,
createApplicationContext()方法会调用SpringApplication的createBeanFactory()方法来创建 Bean 工厂。 - 在
createBeanFactory()方法中,首先会创建一个DefaultListableBeanFactory实例,并设置其相关属性。 - 然后,
createBeanFactory()方法会调用SpringApplication的load()方法来加载 Bean 定义。 - 在
load()方法中,会调用SpringApplication的createBeanDefinitionLoader()方法来创建BeanDefinitionLoader实例。 - 在
createBeanDefinitionLoader()方法中,会根据应用上下文和资源加载器来创建一个DefaultBeanDefinitionLoader实例。 - 最后,
load()方法会调用BeanDefinitionLoader的load()方法来加载 Bean 定义。 - 接下来,
createBeanFactory()方法会调用SpringApplication的prepareBeanFactory()方法来准备 Bean 工厂。 - 在
prepareBeanFactory()方法中,会设置 Bean 工厂的一些属性,例如类加载器、Bean 后置处理器等。 - 最后,
createBeanFactory()方法会返回创建的 Bean 工厂。 - 回到
createApplicationContext()方法,接着会调用SpringApplication的createWebServer()方法来创建 Web 服务器。 - 在
createWebServer()方法中,会根据应用上下文和配置来创建一个WebServer实例。 - 最后,
createApplicationContext()方法会返回创建的应用上下文。 - 最终,
run()方法会返回创建的应用上下文,并完成 Spring Boot 的启动过程。
原文地址: https://www.cveoy.top/t/topic/qbny 著作权归作者所有。请勿转载和采集!