Java面试题更新 2026-08-03

请说明 Spring Boot 应用从 main 方法开始启动 Web 容器的过程,包括关键组件和步骤。

考察说明

考查对 Spring Boot 启动流程的理解,包括自动配置、内嵌容器和启动原理。

回答思路

  1. 【回答框架 1】Spring Boot 应用使用 main 方法作为入口,通过 SpringApplication.run 静态方法启动容器。run 方法内部会创建 SpringApplication 实例,并调用其 run 方法。
  2. 【回答框架 2】run 方法主要步骤包括:设置 SpringApplicationRunListeners 监听器,准备环境 Environment,创建 ApplicationContext(默认为 AnnotationConfigServletWebServerApplicationContext),并触发刷新容器过程。
  3. 【回答框架 3】刷新容器过程中,Spring Boot 通过 AutoConfigurationImportSelector 加载自动配置类,根据条件注解(如 @ConditionalOnClass)和配置属性,决定是否注册对应的 Bean。例如,存在 spring-boot-starter-web 时,自动配置内嵌 Tomcat 和 Spring MVC。
  4. 【回答框架 4】在容器刷新完成后,Spring Boot 会启动内嵌的 Web 服务器(如 Tomcat),通过 ServletWebServerApplicationContext 创建并启动 Servlet 容器,并注册 DispatcherServlet 等组件。应用即可对外提供服务。
  5. 【关键点 1】main 方法通过 SpringApplication.run 启动整体应用。
  6. 【关键点 2】自动配置基于条件注解和 classpath 依赖进行 Bean 装配。
  7. 【关键点 3】内嵌 Web 服务器由 Spring Boot 自动配置并启动,如 Tomcat。
  8. 【易错点 1】不要混淆 Spring Boot 的启动过程与普通 Spring 的 annotation 配置扫描,自动配置是额外机制。
  9. 【易错点 2】内嵌容器的启动是在 Spring 容器刷新之后,并非 main 方法直接启动。