SpringBoot 的启动流程

SpringBoot 的启动流程

1、启动类执行:

当 SpringBoot 项目启动时,会在当前工作目录下寻找有@SpringBootApplication注解标识的类,并把这个类作为应用程序的入口点,在这个启动类中会包含一个 main() 方法。如果找不到这样的启动类,则会打印错误信息并退出。

2、SpringApplication 实例化:

在 main 方法中,创建一个 SpringApplication 对象。这个对象负责引导和启动 Spring Boot 应用。

3、设置应用程序参数:

SpringApplication 可以通过方法链设置一些参数,比如是否需要显示 banner,是否需要以 web 环境启动等。

4、运行 SpringApplication:

调用 SpringApplication.run() 方法启动应用程序。这个方法会触发一系列的启动步骤。

5、准备环境:

SpringApplication 准备 Environment,包括解析配置文件(如 application.properties 或 application.yml),设置系统属性和环境变量。

6、创建并刷新应用上下文:

根据应用类型(如 AnnotationConfigApplicationContext 或 AnnotationConfigServletWebServerApplicationContext)创建合适的 ApplicationContext。

注册所有的 Bean,包括自动配置的 Bean。

7、应用启动监听器和初始化器:

执行所有的 ApplicationListener 和 ApplicationContextInitializer。这些组件可以在应用启动过程中执行一些自定义逻辑。

8、自动配置:

Spring Boot 的自动配置机制根据类路径中的库和自定义的配置属性,自动配置 Spring 应用程序。

9、启动内嵌服务器:

如果是 web 应用,Spring Boot 会启动一个内嵌的 web 服务器(如 Tomcat、Jetty 或 Undertow)。

10、执行 CommandLineRunner 和 ApplicationRunner:

在应用启动完成后,Spring Boot 会调用所有实现了 CommandLineRunner 和 ApplicationRunner 接口的 Bean,以便在应用启动后执行一些特定的代码。

11、应用启动完成:

一旦所有的步骤都完成,Spring Boot 应用就会处于运行状态,准备好接受请求

SpringBoot 是如何实现自动配置的? 2026-03-21
Spring框架在面试中常问的问题 2026-03-23

评论区