Spring Boot 3.0简介

Spring Boot 最新最全的实战代码已上传 Github:Spring Boot3实战


  1. JDK要求最低版本Java17

  2. SpringBoot3底层默认依赖Spring6

  3. 支持 Jakarta EE 10,由于 Java EE 已经变更为 Jakarta EE,包名以 javax开头的需要相应地变更为jakarta

  4. Tomcat10版本

  5. 支持 GraalVM 原生镜像 ,GraalVM 是 Oracle 在 2018 年发布的一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,支持云原生,官网:https://www.graalvm.org/

SpringBoot3将强力合体Java17,采用全新的Spring6版本,Maven支持也提高到了3.5、Gradle提高到了7.3。版本管理器默认也换成了grandle,grandle国内的下载速度慢。
同时发布更新的还有 2.7.x 和 2.6.x 两条版本线,Spring Boot 是我见过的发版最守时的技术框架之一。
Spring Boot 3.0 现已正式发布,它包含了 12 个月以来 151 个开发者的 5700 多次代码提交。这是自 4.5 年前发布 2.0 以来,Spring Boot 的第一次重大修订。

它也是第一个支持 Spring Framework 6.0 和 GraalVM 的 Spring Boot GA 版本,同时也是第一个基于 Java 17 的 Spring Boot 版本,以 Jakarta EE 9 为基准并支持 Jakarta EE 10。同时借助于 GraalVM 支持了 AOT 和 Native Image。


JDK调整


首先要升级你的 JDK 到 JDK17,如果你要使用 Native Image 特性,要使用 GraalVM 22.3 以上和 Native Build Tools Plugin 0.9.17 或更高的版本。


平滑升级

不建议直接从低于 Spring Boot 2.7 的版本直接升级到 Spring Boot 3.0。不然新特性和 API 变更太多,就需要你修改大量的配置,升级路径会过于陡峭。建议通过小版本号分阶段升级到 2.4、2.6、2.7,最后再到 3.0。


依赖调整


Spring Boot3.0 下依赖组件的版本要求也不尽相同,比如 Spring Boot Kafka Starter 可能对 Kafka 有什么要求,这要求你进行充分评估。Spring Cloud 体系应该在对应的 Spring Boot 3.0 体系发布后进行升级

一旦上面的工作准备完毕,你就可以开始尝试升级到 Spring Boot 3.0 了。


最低环境要求


Spring Boot 3.0最低要求 Java 17,并向上兼容支持 Java 19。

所以,如果你想升级 Spring Boot 3.0,请确保你的 JDK 版本是否符合要求,毕竟现在大部分人还是用的 Java 8,升级 JDK 版本不是一件小事,虽然现在 Java 17+ 是免费使用的,但不确定哪个时间点会收费,也可以转战 OpenJDK 或者其他开源的 JDK 版本。

另外,Spring Boot 3.0 已将所有底层依赖项从 Java EE 迁移到了 Jakarta EE API,基于 Jakarta EE 9 并尽可能地兼容 Jakarta EE 10。因为早在几年前 Java EE 已经正式更名为 Jakarta,所以,所有相关的名称都变了,包括包名,所以使用了 Java EE 的应用改动也不小。


配置属性兼容


在 Spring Boot 3.0 中,一些配置属性被重新命名/删除了,开发人员需要相应地更新他们的application.properties或者application.yml。为了帮助你做到这一点,Spring Boot 3.0 提供了一个spring-boot-properties-migrator模块。一旦作为依赖关系添加到你的项目中,它不仅会在启动时分析你的应用程序的环境并打印诊断结果,而且还会在运行时为你临时迁移属性。把下面这个加入pom.xml以帮助你升级兼容配置属性:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-properties-migrator</artifactId>
 <scope>runtime</scope>
</dependency>

完成迁移之后,务必要移除spring-boot-properties-migrator依赖。


应用可观察性

Spring Boot 3.0 通过 Micrometer 和 Micrometer 追踪提高应用可观察性,支持集成 Micrometer 1.10+,引入了的全新的可观察 API 并自动配置 Micrometer 追踪,包括对 Brave、OpenTelemetry、Zipkin 和 Wavefront 组件的支持。

使用 Micrometer 可观察 API 时,完成观察后,可将观察数据主动报告给 Zipkin 等组件,并支持自定义追踪参数配置,这个新特性可以更好地帮助我们了解并监控应用的健康状况。


Jakarta EE

由于 Java EE 已经变更为 Jakarta EE,包名以 javax开头的需要相应地变更为jakarta。这里建议通过 Intellij IDEA 2021.2 提供的内置功能批量处理即可。


Spring Boot 3.0简介
http://59.110.91.42:8090//archives/Springboot3
作者
Younger
许可协议