SpringMVC 6+ 依赖的 servlet 版本问题

发布于:2025-03-12 ⋅ 阅读:(12) ⋅ 点赞:(0)

Spring MVC 6.0.14 版本中,Spring 不再依赖 Java EE(Jakarta EE 8 及以下),而是完全迁移到 Jakarta EE 9+,即所有 javax.servlet 相关包都被替换成了 jakarta.servlet


🔍 Spring MVC 6.0.14 依赖的 Servlet 版本

  • Spring MVC 6+ 需要 Servlet 5.0 及以上版本
  • Servlet 5.0 及以上属于 Jakarta EE 9
  • Servlet API 包变更为 jakarta.servlet

📌 主要的 Servlet 相关依赖

你可以在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>  <!-- 对应 Servlet 6.0 -->
    <scope>provided</scope>
</dependency>

⚠️ 注意

  • Spring MVC 6 只能运行在 Servlet 5.0+ 容器上(如 Tomcat 10+
  • 如果你的 Tomcat 低于 10,请升级到 Tomcat 10 或更高版本!

🔍 Spring MVC 6.0.14 依赖的 Servlet 主要类

Spring MVC 6 默认使用 jakarta.servlet 相关类,如:

Servlet 相关功能 Spring MVC 6 使用的 Jakarta API
Servlet 核心 API jakarta.servlet.http.HttpServlet
过滤器 jakarta.servlet.Filter
监听器 jakarta.servlet.ServletContextListener
请求 & 响应 jakarta.servlet.http.HttpServletRequestjakarta.servlet.http.HttpServletResponse
会话管理 jakarta.servlet.http.HttpSession
异步请求 jakarta.servlet.AsyncContext

🔍 Spring MVC 6 相关的 Tomcat 版本

Spring MVC 版本 需要的 Servlet 版本 支持的 Tomcat 版本
Spring MVC 5.x Servlet 3.1+ Tomcat 8.5, 9
Spring MVC 6.x Servlet 5.0+ Tomcat 10+

🚨 重点提醒:Spring MVC 6 无法在 Tomcat 9 或更低版本运行!

  • 必须使用 Tomcat 10+(或 Jetty 11+)
  • Spring MVC 6 不支持 javax.servlet.*,必须改用 jakarta.servlet.*

✅ 结论

  1. Spring MVC 6.0.14 依赖的是 jakarta.servlet-api 6.0.0(Servlet 6.0)
  2. 必须使用 Tomcat 10+,否则会有 javax.servlet / jakarta.servlet 兼容性问题
  3. 如果 Tomcat 9 及以下,Spring MVC 6 无法运行,请升级 Tomcat 10+

🚀 建议:确保你的 pom.xml 依赖正确,并且 Tomcat 版本至少是 10.0+!


网站公告

今日签到

点亮在社区的每一天
去签到