侧边栏壁纸
博主头像
秋之牧云 博主等级

怀璧慎显,博识谨言。

  • 累计撰写 73 篇文章
  • 累计创建 43 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

SpringBoot与Tomcat版本关系

秋之牧云
2024-07-11 / 0 评论 / 0 点赞 / 424 阅读 / 0 字

SpringBoot各个版本支持的Tomcat版本

Spring Boot 的不同版本与 Apache Tomcat 的适配关系紧密相关,因为 Spring Boot 默认集成了 Tomcat 作为嵌入式应用服务器。以下是 Spring Boot 不同版本与 Tomcat 版本的适配关系概览:

Spring Boot 2.x 系列

  • Spring Boot 2.0.x:默认支持 Tomcat 8.5.x。例如,Spring Boot 2.0.0 发布于 2018 年 3 月,当时 Tomcat 8.5 是主流版本。

  • Spring Boot 2.1.x:仍然支持 Tomcat 8.5.x,但开始引入对 Tomcat 9.x 的支持。

  • Spring Boot 2.2.x:继续支持 Tomcat 9.x。

  • Spring Boot 2.3.x:开始支持 Tomcat 9.0.28 及更高版本。

  • Spring Boot 2.4.x:支持 Tomcat 9.0.30 及更高版本。

  • Spring Boot 2.5.x:支持 Tomcat 9.0.35 及更高版本。

  • Spring Boot 2.6.x:支持 Tomcat 9.0.44 及更高版本。

  • Spring Boot 2.7.x:支持 Tomcat 9.0.53 及更高版本。

Spring Boot 3.x 系列

  • Spring Boot 3.0.x:开始支持 Tomcat 10.x,例如 Tomcat 10.0.17 及更高版本。Spring Boot 3.0 发布于 2022 年底,Tomcat 10.x 已经成为其默认支持的 Tomcat 版本。

Spring Boot 默认的 Tomcat 版本

Spring Boot 的默认 Tomcat 版本会随着 Spring Boot 的主版本更新而变化。例如,在 Spring Boot 2.7.x 中,Tomcat 9.0.53 或更高版本是默认版本。在 Spring Boot 3.0.x 及以后,Tomcat 10.x 成为了默认版本。

如何查看默认版本

如果你正在使用某个特定版本的 Spring Boot,并且想要确定默认的 Tomcat 版本,你可以检查 Spring Boot 的依赖管理文件(如 spring-boot-dependencies 的 Maven BOM),或者直接查看你的项目构建文件(如 pom.xmlbuild.gradle)中的实际依赖版本。

显式指定 Tomcat 版本

尽管 Spring Boot 会自动管理与 Tomcat 的版本兼容性,但在某些情况下,你可能需要显式指定 Tomcat 的版本。这可以通过在 Maven 或 Gradle 的构建文件中添加或覆盖 Tomcat 的依赖来实现。

例如,在 Maven 的 pom.xml 文件中,你可以这样指定 Tomcat 版本:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- Spring Boot 会自动添加 Tomcat,但你可以覆盖版本 -->
    <version>2.7.4</version> <!-- Spring Boot 版本 -->
</dependency>
<!-- 显式指定 Tomcat 版本 -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.53</version> <!-- 指定的 Tomcat 版本 -->
    <scope>provided</scope>
</dependency>

请根据你的具体 Spring Boot 版本和 Tomcat 版本的兼容性要求来调整上述配置。

Tomcat各个版本引入的特性

Apache Tomcat 的不同版本引入了各种新特性和改进,这些特性通常与 Java EE 规范的更新相对应,同时也包括了对性能、安全性和功能的增强。以下是一些关键版本的特性概述:

Tomcat 5.x 系列

  • Tomcat 5.0:引入了对 Servlet 2.3 和 JSP 1.2 的支持,增加了对 Java 2 SDK 1.3 的兼容性。

  • Tomcat 5.5:支持 Servlet 2.4 和 JSP 2.0 规范,提供了更好的错误报告,以及对 HTTP/1.1 协议的完全支持。Tomcat 5.5 也是第一个被认为达到企业级稳定性的版本。

Tomcat 6.x 系列

  • Tomcat 6.0:支持 Servlet 2.5、JSP 2.1 和 EL 2.1 规范,改进了对 JMX 的支持,引入了新的管理界面和更强大的安全功能。

Tomcat 7.x 系列

  • Tomcat 7.0:完全支持 Servlet 3.0 规范,引入了异步请求处理、注解驱动的配置、内存管理的改进,以及对 WebSocket 的初步支持。

Tomcat 8.x 系列

  • Tomcat 8.0:支持 Servlet 3.1 和 JSP 2.3 规范,引入了异步 I/O 处理,改进了对 HTTP/2 的支持,以及对 WebSocket 的更完整实现。

Tomcat 9.x 系列

  • Tomcat 9.0:支持 Servlet 4.0 规范,增加了对 HTTP/2 的原生支持,以及 TLS/SSL 的改进,还有对 JSP 和 EL 的更新。

Tomcat 10.x 系列

  • Tomcat 10.0:支持 Servlet 5.0 规范,包括对 HTTP/2 的改进、TLS 1.3 的支持,以及对 WebSocket 规范的更新。

特性总结

  • Servlet 规范支持:每个版本的 Tomcat 都与最新的 Servlet 规范保持一致,引入了诸如异步处理、注解配置、Web Sockets 等新功能。

  • HTTP/2 支持:从 Tomcat 9.x 开始,HTTP/2 被原生支持,提供了更高效的数据传输。

  • TLS/SSL 改进:Tomcat 的每个新版本都会对 TLS/SSL 支持进行改进,例如从 Tomcat 10.x 开始支持 TLS 1.3。

  • WebSocket 支持:从 Tomcat 7.x 引入初步支持,到 Tomcat 9.x 和 10.x 的更完善实现。

  • 配置简化:Tomcat 引入了注解驱动的配置,减少了 XML 配置的复杂性。

  • 性能和安全性:每个版本都包含了对性能和安全性的增强,包括内存管理的改进、更强大的安全功能和错误报告。

请注意,上述特性总结是基于 Tomcat 的主要版本和 Java EE 相关规范的更新。在实际应用中,每个小版本也可能包含额外的修复和改进。在选择 Tomcat 的版本时,应考虑项目的具体需求,以及与 Java EE 规范、Java 版本和应用框架(如 Spring)的兼容性。

0

评论区