Spring Boot 内置了 Tomcat,使得你可以非常容易地创建和运行独立的 Spring 应用程序。Spring Boot 通过自动配置和启动嵌入式的 Tomcat 来简化 Web 应用程序的部署。下面是 Spring Boot 启动 Tomcat 的基本步骤:
-
依赖管理:
- 在
pom.xml
文件中,Spring Boot 的spring-boot-starter-web
包含了嵌入式 Tomcat 的依赖。当你添加这个 starter 时,Maven 或 Gradle 会自动下载 Tomcat 相关的 jar 包。
- 在
-
自动配置:
- Spring Boot 的
@EnableAutoConfiguration
注解会自动配置嵌入式 Tomcat。SpringBootServletInitializer
类也是一个关键组件,它负责初始化 Spring 应用上下文。
- Spring Boot 的
-
内嵌服务器启动:
- 当你运行 Spring Boot 应用程序的
main
方法时,SpringApplication.run()
方法会被调用。这个方法会创建一个 Spring 应用上下文(ApplicationContext
),并启动内嵌的 Web 服务器。 SpringApplication
会查找EmbeddedWebServerFactory
接口的实现,对于 Tomcat 来说,它是TomcatEmbeddedServletContainerFactory
。这个工厂类负责创建和配置 Tomcat 实例。
- 当你运行 Spring Boot 应用程序的
-
Tomcat 初始化:
TomcatEmbeddedServletContainerFactory
会创建一个Tomcat
对象,并配置它。这个过程中会设置 Tomcat 的端口、连接器、引擎等。- Tomcat 的
Connector
是负责处理 HTTP 请求的关键组件。Spring Boot 会根据配置创建和启动适当的连接器。
-
上下文绑定:
- Spring Boot 会将创建的 Spring 应用上下文绑定到 Tomcat 的
StandardContext
上。这样,Tomcat 就能够处理通过 Spring MVC 控制器路由的请求。
- Spring Boot 会将创建的 Spring 应用上下文绑定到 Tomcat 的
-
启动服务器:
- 最后,Tomcat 被启动,并开始监听配置的端口上的 HTTP 请求。