时间:2024年 12月 23日
作者:小蒋聊技术
邮箱:wei_wei10@163.com
微信:wei_wei10
音频:喜马拉雅
大家好,欢迎来到 小蒋聊技术!今天我们从一个非常实用的场景切入:2022年Spring6和 SpringBoot3相继推出,它们不再支持 Java 8,这让很多开发者感到措手不及。但问题来了:为什么 Spring6和Spring Boot 3 要选择最低支持 JDK 17,跨过 JDK 8-16,直接升级到 JDK 17?
其实,背后并不是单纯的技术选择,而是涉及到 企业决策、市场需求 和 技术趋势 的多重考虑。今天,我们就一起来分析一下,企业为什么会选择 JDK 17,而 不再依赖 JDK 8,以及 这对技术人员意味着什么。
Java 17 的采用率远远超过了 Java 11 推出时的情况。到 2023 年,大约十分之一 (9%) 的应用程序在生产中使用 Java 17,截至目前已有 35% 的应用程序正在使用 Java 17,一年内增长率接近 300%。而 Java 11 用了数年时间才接近这一水平。
从 2018 年 9 月起, Java 17 已取代 Java 11,成为最常用的 LTS 版本。此外,只有不到 2% 的应用程序使用的是 Java 非 LTS 版本。
Spring Boot 3.0 只支持 JDK 17,JDK 8 为什么不行了?
1. JDK 8 的生命周期已经结束
首先,我们需要了解一个背景:JDK 8 是一个 Oracle官宣可以 免费 商用的LTS版本,目前已经进入了它的生命周期的 末期,并且自 2023年3月 起,JDK 8 就不再接受 免费公共更新(官方支持已经结束)。对于企业来说,这意味着:没有长期的安全更新和 bug 修复,也就没有了保障。那什么是LTS版本?所谓 LTS,是 Long Term Support,也就是官方保证会长期支持的版本。
上面这张图是 Oracle 官方给出的 Oracle JDK 支持的时间线。一直以来,Java8 都是 Java 社区心头的痛,Java8提供了很多特性,比如Lambda 表达式、Optional 类,加上Java8超长的支持时间,都导致了JDK8的使用至今。它代表着以稳定性为主的企业管理层与拥抱变化为主的技术人员之间的拉锯战。不升!成为各大厂心照不宣的选择。现在,这种平衡或将打破。因为 Java 届的霸主框架 SpringBoot,它的Spring Boot 3.0将最低支持版本定为 JDK 17。这不仅仅是为了跟随技术趋势,更多的是为了 安全性、性能 和 长期支持 的考虑。
2. 为什么 Spring Boot 3.0 选择 JDK 17?
那么,为什么 Spring Boot 3.0 选择 JDK 17?你可以从两个关键点来理解:
- JDK 17 是 LTS(长期支持版),意味着它会得到 8 年的安全更新和 bug 修复,而且未来的 Java 版本也会定期发布安全更新。对于企业来说,这意味着在接下来的几年里,他们可以稳定运行 JDK 17,而不必担心技术过时或安全隐患。
- JDK 17 是市场上最被广泛支持的版本。无论是开发工具(IDE),还是各种云平台、容器化环境,JDK 17 都得到了 最大范围的兼容性 和支持。而 Java 8 显然已经逐渐落后,市场上很多新的技术栈(例如微服务、容器化、云原生等)都已经开始 围绕 JDK 17 进行优化,选择 JDK 8 只会让企业在 未来几年 面临兼容性和升级的麻烦。
企业为什么要选择 JDK 17?支持最多,最经济
1. 企业对技术支持的需求:选择“支持最多”的版本
JDK 17 成为企业的首选,背后的逻辑其实很简单:选择最被广泛支持的版本。当企业考虑技术升级时,他们会优先选择那些能够 得到最多支持 的版本,因为这可以减少未来的风险。例如,JDK 17 在全球范围内的 开发者社区、工具支持、云平台兼容性 等方面都表现优异,几乎所有主流的技术栈和平台都将其视为默认版本。
这样一来,企业的开发人员就不需要担心各种兼容性问题,升级的成本也会更低。无论是 Spring Boot 还是其他框架,JDK 17 都是 最广泛兼容和最稳定的选择。
2. 选择最经济的版本:降低企业长期维护成本
除了技术支持,企业还需要考虑 成本。JDK 8 在安全更新方面已经不再免费,而 JDK 17 是 长期支持版(LTS),这意味着,企业在未来的 8 年里可以 免费获取安全更新,这极大地减少了 长期维护的成本。相比之下,如果继续使用 JDK 8,企业可能面临 频繁的安全漏洞修复 和 技术债务,长期来看,升级成本和风险 都会增加。
JDK 17 不仅支持现代化开发的需求,而且作为一个 LTS 版本,其 免费更新 和 广泛支持 的优势使其成为企业最经济的选择。
3. 一步到位,避免未来升级的麻烦
对于企业来说,技术的选择不仅仅是 当前需求,更多的是要考虑 未来几年 的 可扩展性 和 技术演化。如果企业现在依然坚持使用 JDK 8,那么它可能会在未来几年面临越来越多的 技术债务 和 升级难题,甚至可能需要在短期内进行 两次升级,这将会带来巨大的 时间成本 和 经济成本。
而选择 JDK 17,企业就可以 “一步到位”,为未来的 技术演进 和 架构变革铺平道路,减少未来的技术迁移和重构成本。
技术人员如何应对 JDK 升级带来的职业挑战与机遇?
1. 提升自己的技能:站在市场需求的风口浪尖
那么,作为技术人员,如何在这个大背景下做好职业规划呢?答案是:紧跟技术趋势,提升自己的技能。
- 学习 JDK 17 的新特性,如 记录类、密封类、模式匹配、增强的垃圾回收 等,掌握 JDK 17 的新能力,将为你在开发中提供更多的 优化空间 和 技术深度。
- 掌握云原生技术 和 微服务架构,这些是未来几年内,几乎所有企业都在追求的 技术转型方向。JDK 17 在这些领域的支持,使得你可以更轻松地与 容器化、分布式架构 等技术融合,为企业提供更好的技术方案。
2. 提前适应企业的技术转型
企业将面临 JDK 升级 和 技术架构调整,这对开发人员来说是一次 职业机会,尤其是在 技术转型 中担任关键角色的人员,将会有更多的晋升空间和 高薪机会。作为开发者,不仅要学习 JDK 17 的新特性,还要在 实际项目中运用,成为企业技术转型中的 核心力量。
3. 职业规划:为自己设定技术路线图
面对 JDK 升级,你需要为自己的 职业生涯 设定清晰的路线图。除了 JDK 17,你还应该深入了解 现代架构、容器化(如 Docker 和 Kubernetes)、分布式系统、DevOps 流程 等热门技术。这样不仅能提升你的技术能力,还能帮助你在 技术市场 中脱颖而出。
如果你是 初级开发者,现在学习 JDK 17 和相关技术栈,能为你 打下扎实的基础;如果你是 中高级开发者,深入理解 JDK 17 在大规模分布式系统中的应用,将使你在 技术领导岗位 上拥有更多机会。
总结:为什么选择 JDK 17 对企业和技术人员都至关重要
通过今天的讨论,我们可以看到,Spring Boot 3.0 不再支持 Java 8,而选择最低支持 JDK 17,背后有着深刻的 市场需求 和 企业战略 考量。对于企业来说,JDK 17 是 最稳定、最经济、最广泛支持的选择,可以有效降低 长期成本,并推动技术转型。而对于技术人员来说,掌握 JDK 17 的新特性并理解其背后的趋势,将帮助你提升 技术竞争力,迎接未来的职业机遇。
希望今天的内容能帮助大家理解 JDK 升级背后的市场逻辑,以及如何通过跟上技术潮流,为自己的职业生涯做好准备。小蒋聊技术 ,我们下期再见!