💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
Spring Boot应用启动分为三个主要阶段:1️⃣ 启动阶段:JVM启动,执行SpringApplication.run(),准备环境和配置。2️⃣ 上下文初始化阶段:创建并刷新应用上下文,扫描和注入Bean,启动嵌入式服务器(如有)。3️⃣ 启动后阶段:执行CommandLineRunner和ApplicationRunner,应用准备好处理请求。
🎯
关键要点
- Spring Boot应用启动分为三个主要阶段:启动阶段、上下文初始化阶段和启动后阶段。
- 启动阶段包括JVM启动和执行SpringApplication.run(),准备环境和配置。
- 上下文初始化阶段创建并刷新应用上下文,扫描和注入Bean,启动嵌入式服务器(如有)。
- 启动后阶段执行CommandLineRunner和ApplicationRunner,应用准备好处理请求。
- JVM启动并加载主类,执行SpringApplication.run()方法以启动应用。
- SpringApplication初始化,加载应用配置和环境属性,准备应用上下文。
- 创建Spring应用上下文,管理Bean、配置和依赖关系。
- 加载ApplicationContextInitializers和SpringApplicationRunListeners。
- 准备环境变量、应用配置文件和命令行参数,确定活动和默认配置文件。
- 刷新应用上下文,扫描注解类,实例化Bean并管理其生命周期。
- 如果是Web应用,自动启动嵌入式Web服务器,监听请求。
- 执行CommandLineRunner和ApplicationRunner,运行初始化逻辑。
- 触发ApplicationReadyEvent,表示应用已完全启动并准备好处理请求。
- Web应用保持运行状态,等待HTTP请求;非Web应用在运行初始化逻辑后退出。
➡️