JDK8升17与Spring Boot版本升级的考量

Spring

1个回答

写回答

Sukply

2026-01-14 22:50

+ 关注

Spring
Spring

旧项目采用Spring boot 1.5和jdk8,新项目则是Spring boot 2.7与jdk17(之所以没用Spring boot3,是因为项目立项时Spring boot2才是主流,jdk也是后来从8改成17的)。在升级过程中,升级jdk相较于升级Spring boot的大版本,改动要小得多。实际操作下来会发现,主要就是更改几个配置。这其中有两个改动其实在jdk11时就已埋下伏笔,一是模块化将包拆分出去,二是反射调用模块需要权限(到jdk16才开始强制要求)。之后就可以随心所欲地使用以var开头的变量了,Stream api和Optional用起来也更加方便。最多也就是默认的新gc在理论上有所改善,不过都是些简单的小项目,实际上并没有什么差别。总结仅仅把jdk从8升级到17,改动不大,带来的好处也有限。如果是新项目,升级上去会让人感觉好一些;要是维护老项目,升不升其实无所谓。再来说说Spring boot,它升级大版本时的割裂性比较严重。旧项目基本上没必要升级,因为这样做往往得不偿失。新项目也要视情况而定,Spring boot3刚推出,很多适配工作可能还没跟上。当年Spring boot2推出的时候就折腾了很久,结果还是用1.5更顺手。特别是项目如果使用了Spring cloud,适配就会更慢一步。如果是没有任何负担的纯新项目,那么以Spring boot3为基础,后续升级小版本也会比较方便。要是已经使用了一些现有组件,那么估计还是Spring boot2遇到的问题更少一些。Spring boot2已经达到了一个比较好用的阶段,启动速度不慢,各方面功能也比较齐全。相比之下,Spring boot3的升级目前来看主要是支持静态编译原生打包,方便docker部署,但如果没有大量部署docker的需求,这些好处可能也没什么用。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号