在 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列出了