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

Spring Boot 2.5.x在Java 17支持上存在一些挑战,主要是由于Spring使用的CGLIB和ASM框架与Java 17不兼容。尽管Spring 6和Spring Boot 3才正式支持Java 17,但通过GitHub问题#26767了解到,Spring Boot 2.5.5已开始支持Java 17。推荐使用Spring Boot 2.5.7作为支持Java 17的版本,并注意版本号不再包含-RELEASE后缀。此外,Spring Boot 2.5引入了对Lombok 1.18.22的依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 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。如果看完的小伙伴有兴趣了解更多的话,欢迎添加vx小助手:ON7luck  详细了解~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值