记一次springboot3的升级之旅

记一次springboot3的升级之旅

💡 原文中文,约5600字,阅读约需14分钟。
📝

内容提要

本文讨论了从Spring Boot 2.4.x升级到Spring Boot 3.1.0过程中遇到的兼容性问题,主要是由于javax.servlet更名为jakarta.servlet。升级后,部分依赖包需要更新以支持新版本,尤其是与GraalVM的集成。同时,Spring 6删除了一些对象,需要寻找替代方案。作者总结了遇到的错误及解决方法,强调了模块化重构的重要性,以支持未来的技术升级。

🎯

关键要点

  • 从Spring Boot 2.4.x升级到3.1.0过程中,主要兼容性问题是javax.servlet更名为jakarta.servlet。

  • 部分依赖包需要更新以支持新版本,特别是与GraalVM的集成。

  • Spring 6删除了一些对象,如CommonsMultipartFile和WebSecurityConfigurerAdapter,需要寻找替代方案。

  • 遇到的错误包括无法找到javax.servlet、HttpClient类型不匹配、以及使用Gson反序列化时的InaccessibleObjectException。

  • 建议将项目模块化重构,以支持未来的技术升级和动态引入能力。

延伸问答

从Spring Boot 2.4.x升级到3.1.0时遇到的主要兼容性问题是什么?

主要兼容性问题是javax.servlet更名为jakarta.servlet。

在升级Spring Boot时,哪些依赖包需要更新?

部分依赖包需要更新以支持新版本,特别是与GraalVM的集成。

Spring 6删除了哪些对象,开发者应该如何应对?

Spring 6删除了CommonsMultipartFile和WebSecurityConfigurerAdapter对象,开发者需要寻找替代方案。

在使用Gson反序列化时遇到的InaccessibleObjectException如何解决?

需要添加自定义反序列化器处理java.time.Instant类型字段。

为什么在升级过程中会出现找不到javax.servlet的错误?

这是因为javax已更名为jakarta,Spring Boot 3使用了新的命名空间。

如何进行项目的模块化重构以支持未来的技术升级?

建议将项目进行模块化重构,以支持动态引入能力和未来的技术升级。

🏷️

标签

➡️

继续阅读