Spring Boot 2.5.x能支援Java 17了 - codecentric

banq發表於2021-12-20

在 Spring Framework 中,AOP 代理是 JDK 動態代理或 CGLIB 代理。

ASM是 Java 位元組碼操作的框架。ASM 被 CGLIB 使用,而 CGLIB 又被Spring 用於 AOP
Spring 透過使用 CGLIB 和 ASM,正在生成與 Java 17 的執行時不相容的代理類。Spring Boot 2.3 依賴於 Spring Framework 5.2,後者使用與 Java 17 不相容的 CGLIB 和 ASM 版本。
但是 Spring 6和Spring Boot 3版本才開始正式支援 Java 17。
雖如此,他們已經做了很多工作來支援 Spring Framework5.3.x和 Spring Boot 中的Java 17,並在 Spring Framework 5.3.x 中2.5.x列出了對 JDK 17 和 JDK 18 的預期支援
發現這個 GitHub 問題Document support for Java 17 #26767,標記為版本 2.5.5已經支援Java 17了。
截至今天,最新的 Spring Boot 2.5.x 版本是2.5.7. 我們有一個支援 Java 17 的 Spring Boot 版本,讓我們開始吧。
在您的父 POM 中,將父級更新為spring-boot-starter-parent:2.5.7.

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.5.7</version>
</parent>


請注意新版本中缺少-RELEASE的字尾。Spring更新了Spring Boot 在 version 中採用的版本控制方案2.4.0。
tips: Spring Boot 2.5 已經定義了對 Lombok 的依賴項1.18.22。
詳細點選標題見原文

相關文章