Bootstrap

Spring Boot是如何启动Tomcat的?

Spring Boot 内置了 Tomcat,使得你可以非常容易地创建和运行独立的 Spring 应用程序。Spring Boot 通过自动配置和启动嵌入式的 Tomcat 来简化 Web 应用程序的部署。下面是 Spring Boot 启动 Tomcat 的基本步骤:

  1. 依赖管理

    • 在 pom.xml 文件中,Spring Boot 的 spring-boot-starter-web 包含了嵌入式 Tomcat 的依赖。当你添加这个 starter 时,Maven 或 Gradle 会自动下载 Tomcat 相关的 jar 包。
  2. 自动配置

    • Spring Boot 的 @EnableAutoConfiguration 注解会自动配置嵌入式 Tomcat。SpringBootServletInitializer 类也是一个关键组件,它负责初始化 Spring 应用上下文。
  3. 内嵌服务器启动

    • 当你运行 Spring Boot 应用程序的 main 方法时,SpringApplication.run() 方法会被调用。这个方法会创建一个 Spring 应用上下文(ApplicationContext),并启动内嵌的 Web 服务器。
    • SpringApplication 会查找 EmbeddedWebServerFactory 接口的实现,对于 Tomcat 来说,它是 TomcatEmbeddedServletContainerFactory。这个工厂类负责创建和配置 Tomcat 实例。
  4. Tomcat 初始化

    • TomcatEmbeddedServletContainerFactory 会创建一个 Tomcat 对象,并配置它。这个过程中会设置 Tomcat 的端口、连接器、引擎等。
    • Tomcat 的 Connector 是负责处理 HTTP 请求的关键组件。Spring Boot 会根据配置创建和启动适当的连接器。
  5. 上下文绑定

    • Spring Boot 会将创建的 Spring 应用上下文绑定到 Tomcat 的 StandardContext 上。这样,Tomcat 就能够处理通过 Spring MVC 控制器路由的请求。
  6. 启动服务器

    • 最后,Tomcat 被启动,并开始监听配置的端口上的 HTTP 请求。
;