目录
- 【1】Spring Boot 3.0正式发布及新特性
- 依赖调整
- 升级的关键变更
- 支持 GraalVM 原生镜像
- Spring Boot 最新支持版本
- Spring Boo 版本
- 版本 3.1.5
- 前置系统清单
- 三方包升级
- Ref
【1】Spring Boot 3.0正式发布及新特性
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。
依赖调整
Spring Boot3.0 下依赖组件的版本要求也不尽相同,比如 Spring Boot Kafka Starter 可能对 Kafka 有什么要求,这要求你进行充分评估。Spring Cloud 体系应该在对应的 Spring Boot 3.0 体系发布后进行升级
一旦上面的工作准备完毕,你就可以开始尝试升级到 Spring Boot 3.0 了。
升级的关键变更
Spring Boot 3.0 有一些关键改变,这些改变将与大多数应用程序有关。所以开发者要仔细阅读这些变更。
自动配置文件变更Spring Boot 2.7 引入了一个新的文件:META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 用于注册自动配置,同时保持与 spring.factories 中注册的向后兼容。
Spring Boot 3.0 发布后,spring.factories已经被移除,只能通过imports文件来注册自动配置。
支持 GraalVM 原生镜像
GraalVM 是 Oracle 在 2018 年发布的一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和R语言等。
Spring Boot 3.0 应用现在可以支持转换为 GraalVM 原生镜像了,这可以提供显著的内存和启动性能改进,能支持 GraalVM 原生镜像也是整个 Spring 产品组合中的一项重大能力的提升。
Spring Boot 3.0 最低支持 Graal 22.3+ 和 Native Build Tools Plugin 0.9.17+。
Spring Boot 3.0 支持 GraalVM 原生镜像后,它甚至取代了实验性的 Spring Native 项目:
Spring Boot 最新支持版本
Spring Boo 版本
Spring Boot | JDK | Spring | Maven | Gradle |
3.1.0 | 17 ~ 20 | 6.0.9+ | 3.6.3+ | 7.5+,8.x |
3.0.0 | 17 ~ 19 | 6.0.2+ | 3.5+ | 7.5+ |
2.7.12 | 8 ~ 20 | 5.3.27+ | 3.5+ | 6.8.x, 6.9.x, 7.x, 8.x |
版本 3.1.5
版本: Spring Boot 3.1.5
前置系统清单
依赖 | 版本 | 说明 |
Spring Boot 3.1.5 |
| |
Maven |
| Build Tool |
Gradle |
| Build Tool |
Tomcat 10.1 | Servlet Version : | Servlet Containers |
Jetty 11.0 | Servlet Version : | Servlet Containers |
Undertow 2.3 | Servlet Version: | Servlet Containers |
GraalVM | 22.3+ | GraalVM Native Images |
Native Build Tools | 0.9.27 | GraalVM Native Images |
java | 17+ | Java |
Jakarta | 替代 JAVA EE |
三方包升级
pring Boot 3.0 构建基于 Spring Framework 6 之上,需要使用 Spring Framework 6。 该版本中升级的其他 Spring 项目包括:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.1-Release-Notes
Spring AMQP 3.0.
Spring Batch 5.0.
Spring Data 2022.0.
Spring GraphQL 1.1.
Spring HATEOAS 2.0.
Spring Integration 6.0.
Spring Kafka 3.0.
Spring LDAP 3.0.
Spring REST Docs 3.0.
Spring Retry 2.0.
Spring Security 6.0
Spring Session 2022.0
Spring WS 4.0.
Spring Boot 3.0 已经从 Java EE 升级为 JakartaEE API。尽可能选择 JakartaEE10 兼容的依赖:
Jakarta Activation 2.1
Jakarta JMS 3.1
Jakarta JSON 2.1
Jakarta JSON Bind 3.0
Jakarta Mail 2.1
Jakarta Persistence 3.1
Jakarta Servlet 6.0
Jakarta Servlet JSP JSTL 3.0
Jakarta Transaction 2.0
Jakarta Validation 3.0
Jakarta WebSocket 2.1
Jakarta WS RS 3.1
Jakarta XML SOAP 3.0
Jakarta XML WS 4.0
另外,还升级了第三方 jar 包的最新稳定版本,其中一些值得注意的依赖升级包括:
Couchbase Client 3.4
Elasticsearch Client 8.5
Flyway 9
Groovy 4.0
Hibernate 6.1
Hibernate Validator 8.0
Jackson 2.14
Jersey 3.1
Jetty 11
jOOQ 3.16
Kotlin 1.7.20
Liquibase 4.13
Lettuce 6.2
Log4j 2.18
Logback 1.4
Micrometer 1.10
Micrometer Tracing 1.0
Neo4j Java Driver 5.2
Netty 4.1.77.Final
OkHttp 4.10
R2DBC 1.0
Reactor 2022.0
SLF4J 2.0
SnakeYAML 1.32
Tomcat 10
Thymeleaf 3.1.0.M2
Undertow 2.2.20.Final
Ref
【官网blog preparing-for-spring-boot-3-0 】https://spring.io/blog/2022/05/24/preparing-for-spring-boot-3-0
官网-spring boot指南