Spring Boot 启动流程大致分为以下几个步骤:
-
加载 Spring 应用上下文:Spring Boot 在启动时会加载应用程序的配置文件(如 application.properties 或 application.yml),然后基于这些配置创建 Spring 应用上下文(ApplicationContext)。
-
扫描注册组件:Spring Boot 会扫描应用程序中的所有组件(如控制器、服务、配置类等),并注册到应用上下文中。
-
自动配置:Spring Boot 会根据 classpath 中的依赖和配置,自动配置应用程序所需的 bean,例如数据源、事务管理器、Web 容器等。
-
启动内嵌容器:Spring Boot 内置了常用的 Servlet 容器(如 Tomcat、Jetty、Undertow),在启动过程中会根据配置选择合适的容器,并将应用程序部署到容器中。
-
运行应用程序:容器启动后,Spring Boot 会执行应用程序的启动逻辑,包括执行
CommandLineRunner
或ApplicationRunner
接口的实现类中的run
方法,以及处理 HTTP 请求等。 -
加载应用程序监听器和事件:Spring Boot 支持应用程序监听器和事件机制,可以在应用程序启动、停止、失败等事件发生时执行自定义逻辑。
-
应用程序初始化:在启动过程中,Spring Boot 还会执行一些初始化操作,例如加载配置、注册拦截器、配置消息转换器等。