1. 项目概述:Spring Boot内嵌Tomcat的核心价值
作为一名经历过传统Java EE项目部署的老兵,我至今记得第一次用Spring Boot内嵌Tomcat时的震撼——原来Web服务可以如此简单!传统模式下,我们需要经历"开发→打包WAR→部署到外部Tomcat→调试"的繁琐流程,而内嵌模式直接把整个生命周期压缩到"编码→运行"两个步骤。
这种开发体验的跃升,本质上源于Spring Boot对Tomcat的深度整合。当你引入spring-boot-starter-web依赖时,实际上获得了一个完整的、预配置的Servlet容器生态系统。不同于独立部署时需要手动配置的server.xml、context.xml等文件,内嵌Tomcat的所有参数都通过熟悉的application.yml进行管理,这种设计哲学正是Spring Boot"约定优于配置"理念的完美体现。
实际案例:在我参与的一个物联网平台项目中,采用内嵌Tomcat后,本地开发时启动时间从原来的47秒(外部Tomcat热部署模式)缩短到8秒,且完全消除了"代码改了但部署没生效"这类经典问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与项目创建
2.1 开发环境配置清单
在开始编码前,请确保你的环境包含以下要素:
- JDK 17+:Spring Boot 3.x的最低要求(建议使用Amazon Corretto或Temurin发行版)
- Maven 3.8+:配置阿里云镜像加速依赖下载(修改
settings.xml):xml复制<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> - IDE选择:IntelliJ IDEA(推荐)或VS Code with Java插件
2.2 项目初始化细节
使用Spring Initializr创建项目时,有两个关键选择需要注意:
- 打包方式:必须选择
JAR而非WAR,这是内嵌模式的前提条件 - 依赖项:除
Spring Web外,建议同时勾选Lombok和Actuator,前者可以简化代码,后者提供容器健康监控
初始化后的pom.xml应包含如下核心依赖(以Spring Boot 3.2.0为例):
xml复制<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 内嵌Tomcat实际依赖项(传递性引入) -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>10.
