
Spring
我在自己的小项目中尝试升级到 JDK 17,使用了
Spring 6 和
Spring Boot 3.0。这个过程中遇到了一些比较棘手的问题:首先,原本和 Servlet 相关的内容,包名从
Javax 变成了 jakarta。这一变化导致所有引用旧包名的依赖都无法正常工作,比如 Swagger 2.0(来自
Springfox)就因此无法兼容。其次,有些原本默认包含的功能或库被移除了,需要单独引入依赖。例如,
Javax.validation 和
Javax.annotation 等库不再自动包含在内,必须手动添加相关的新版本依赖。另外,部分 API 的用法也发生了改变。例如,
Spring Security 的配置方式改为更现代化的流式写法,这要求开发者重新学习和调整代码逻辑。除此之外,还有一些细节问题我记不太清楚了。总结最大的挑战在于,之前积累的经验和代码可能不再适用。以前可以直接复制粘贴使用的代码片段,现在可能会因为不兼容而失效。尤其是某些官方库还没有完成升级,我们需要自己寻找替代方案。此外,升级后系统的稳定性也难以保证,毕竟新框架尚未经过大规模实战验证。不过,这并不意味着我们应该拒绝新技术。实际上,新版本的框架在性能和易用性上都有显著提升。作为程序员,持续学习和适应新技术是我们的职责所在。如果有机会,还是值得尝试新框架,以跟上技术发展的步伐。