返回介绍

18.2 SpringApplication 执行流程

发布于 2025-04-26 13:53:54 字数 1451 浏览 0 评论 0 收藏

在 18.1 节,我们对 SpringApplication 的 run 方法进行了简单的学习,这里再简单总结一下 Spring Boot 启动的完整流程,具体流程如图 18-1 所示。

图 18-1 Spring Boot 启动流程

(1)项目启动时,调用入口类 MySpringBootApplication 的 main 方法。

(2)入口类 MySpringBootApplication 的 main 方法会调用 SpringApplication 的静态方法 run。

(3)在 run 方法中首先创建一个 SpringApplication 对象实例,然后调用 SpringApplication 对象实例的 run 方法。

(4)查询和加载所有的 SpringApplicationListener 监听器。

(5)SpringApplicationListener 监听器调用其 starting 方法,Spring Boot 通知这些 SpringApplicationListener 监听器,马上要开始执行了。

(6)创建和准备 Spring Boot 应用将要使用的 Environment 环境,包括配置要使用的 PropertySource 以及 Profile。

(7)创建和初始化应用上下文 ApplicationContext。这一步只是准备工作,并未开始正式创建。

(8)这一步是最重要的,Spring Boot 会通过 @EnableAutoConfiguration 获取所有配置以及其他形式的 Ioc 容器配置,并加载到已经准备完毕的 ApplicationContext。

(9)主要是调用 ApplicationContextInitializer 类的 initialize 方法对应用上下文进行设置和处理。

(10)调用 ApplicationContext 上下文的 refresh 方法,使 Ioc 容器达到可用状态。

(11)查找当前 ApplicationContext 上下文是否注册 ApplicationRunner 与 CommandLineRunner,如果有,循环遍历执行 ApplicationRunner 和 CommandLineRunner 的 run 方法。

(12)执行 SpringApplicationListener 的 finished 方法,Spring Boot 应用启动完毕。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。