Spring 5.3 与 Servlet 3.0 的使用

Posted

技术标签:

【中文标题】Spring 5.3 与 Servlet 3.0 的使用【英文标题】:Use of Spring 5.3 with Servlet 3.0 【发布时间】:2021-12-09 01:15:08 【问题描述】:

我正在开发使用 4.3.14 版本的 Spring Core 和 4.2.13 版本的 Spring Web 的应用程序。我们不使用 Spring MVC。此外,在 Spring Web 中,我们只使用非常有限的一组类:

XmlWebApplicationContext(来自 org.springframework.web.context 的类) RestTemplate(所以来自 org.springframework.web.client 的类,我预计会有一些问题) 一些实用程序类可能可以重构以使用其他东西

我的问题是: 我们想迁移到 Spring 5.x。这样的迁移真的可能吗?或者我应该期待应用程序启动时出现一些严重问题(类不兼容等)。此来源例如:https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework-5.x#whats-new-in-version-50 表示需要 Servlet 3.1

另一方面,https://spring.io/blog/2015/06/10/feedback-welcome-spring-5-system-requirementsJUERGEN HOELLER 写道,迁移到 Spring 5 将是一个软迁移。所以我假设如果应用程序只使用 JEE6 + Servlet 3.0 的功能,那么它也可以在 Spring 5.x 上使用 JEE6 兼容的应用服务器

有人有这方面的经验吗?

【问题讨论】:

【参考方案1】:

与往常一样,Spring Framework 使用新的主要版本升级其基线。在这种情况下,we're requiring JDK8+ and Java EE7+。

实际上,这意味着编译后的代码依赖于这些 API,不再使用反射来适应它们。就您而言,这不仅与 Servlet 有关,还与 JPA、JMS、bean 验证和其他规范有关。

您的应用程序可能在您提到的安排下正常工作,但 Spring 团队不保证支持此设置。

【讨论】:

我知道还有其他依赖的框架。但是,其他框架不会导致 Wepshere 8.5 出现问题。 Servlet 3.1 只是有问题。谢谢澄清

以上是关于Spring 5.3 与 Servlet 3.0 的使用的主要内容,如果未能解决你的问题,请参考以下文章

Servlet 3.0 的 MultipartResolver 的 Spring 4 Java 配置

Java EE - Servlet 3.0 和 Spring MVC

Spring Boot 2.3.0 正式发布!

Servlet 3.0 注释与 Guice 结合使用

Spring MVC 和 Servlets 3.0 - 你还需要 web.xml 吗?

Spring MVC 从 2.5 到 3.0