SpringBoot3对应的版本问题
Spring Boot 3.0.0 默认使用的嵌入式 Tomcat 版本是 Tomcat 10.1.x。具体而言,它采用的是 Tomcat 10.1.1 版本。
·
Spring Boot 3.0.0 默认使用的嵌入式 Tomcat 版本是 Tomcat 10.1.x。具体而言,它采用的是 Tomcat 10.1.1 版本。
原因解释
Spring Boot 版本和其所使用的嵌入式服务器版本存在对应关系,这是为了保证框架和服务器之间能良好兼容,发挥出最佳性能。Spring Boot 3.0.x 系列是基于 Spring Framework 6.x 构建的,并且需要 Java 17 及以上版本。与此同时,它也需要适配支持 Jakarta EE 9+ 的 Servlet 容器,而 Tomcat 10.1.x 系列正是满足这一要求的,因为从 Tomcat 10 开始,其已经从 Java EE 规范迁移到了 Jakarta EE 规范。
验证方式
如果你想确认项目中使用的 Tomcat 版本,可以通过以下两种方式:
- 查看依赖树:若使用 Maven 构建项目,在命令行中进入项目根目录,执行
mvn dependency:tree命令,在输出结果里查找 Tomcat 相关依赖,从中就能看到具体版本。例如:
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:3.0.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:3.0.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:3.0.0:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:10.1.1:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:10.1.1:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-websocket:jar:10.1.1:compile
- 查看启动日志:当项目启动时,在控制台日志中会输出所使用的服务器信息,从中可以找到 Tomcat 的版本。例如,日志中可能会出现类似下面的内容:
Tomcat initialized with port(s): 8080 (http)
Starting service [Tomcat]
Starting Servlet engine: [Apache Tomcat/10.1.1]
注意事项
从 Tomcat 9 升级到 Tomcat 10 时,由于从 Java EE 迁移到了 Jakarta EE,会有一些 API 发生变化,例如包名从 javax.servlet 变为 jakarta.servlet。所以在将基于 Spring Boot 2.x(默认使用 Tomcat 9)的项目升级到 Spring Boot 3.0.0 时,需要对代码中涉及 Servlet API 的部分进行相应修改。
更多推荐



所有评论(0)