从 Spring 4.2 升级到 Spring 5.0.5 时预见到的问题

Posted

技术标签:

【中文标题】从 Spring 4.2 升级到 Spring 5.0.5 时预见到的问题【英文标题】:Foreseeing issues when upgrading from Spring 4.2 to Spring 5.0.5 【发布时间】:2018-10-08 04:31:46 【问题描述】:

在我当前的项目中,我们使用的是 Spring 4.2(核心、aop、bean、web、webmvc 等)。

从 Spring 4.2 升级到 Spring 5.0.5 时,我们可能会遇到哪些主要问题? Spring Security 4.2 与 Spring 5.0.5 的向后兼容性如何?

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

如果不知道您的项目依赖于 Spring 的哪些功能和特性,就很难说清楚。

我建议首先查看官方变更日志和发行说明,以确定项目中受影响的部分。 What's New in Spring Framework 5.x 可能是一个很好的起点。

尤其要注意被移除的功能和 API。

还有一个Spring Integration 4.3 to 5.0 Migration Guide。

【讨论】:

【参考方案2】:

在升级到 Spring 4.2.7 时,我遇到了以下两个问题

    获取和删除包含“;”的请求由于 HttpFirewall 的限制,“%”字符将失败并返回 500 响应。您可以参考以下链接获取解决方案。

Getting 500 response in Spring 5 when url contains semicolon

    Spring 5 需要默认密码编码器,否则会抛出异常 java.lang.IllegalArgumentException:没有为 id “null”映射 PasswordEncoder 您可以参考以下链接获取解决方案。

Spring Security 5 : There is no PasswordEncoder mapped for the id "null"

【讨论】:

以上是关于从 Spring 4.2 升级到 Spring 5.0.5 时预见到的问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring框架升级到5

Spring Boot - 从 2.2.5 升级到 2.5.7 后,应用程序无法启动

Spring Boot - 从 2.2.5 升级到 2.3.0 后验证停止工作

从 Spring Boot Starter 1.3.5.RELEASE 升级到 1.5.2 RELEASE 时 Spring Security 中的访问被拒绝错误

将 Spring Cloud 版本从 Edgware 升级到 Hoxton

Spring Boot 从 1.5.3 升级到 1.5.4,自定义验证配置启动失败