Java 周报总结(2024年5月27日)
本周的Java周报涵盖了多个重要更新,包括JDK 23的四个JEP(Java Enhancement Proposal)目标、多个框架和工具的发布,以及Jakarta EE的进展。
OpenJDK 更新
四个JEP被确定为JDK 23的目标:
- JEP 482:灵活的构造函数体(第二次预览)
该JEP允许在构造函数中的this()或super()调用之前出现不引用实例的语句,并保持构造函数的安全性和初始化保证。主要变化包括对局部类的处理,以及放宽字段在显式构造函数调用之前不能访问的限制。 - JEP 481:作用域值(第三次预览)
该JEP旨在在多线程环境下共享不可变数据,特别适用于大量虚拟线程的场景。本次预览中的变化涉及callWhere()方法的操作参数,现在是函数式接口,允许Java编译器推断是否可能抛出检查异常。 - JEP 480:结构化并发(第三次预览)
该JEP引入结构化并发,简化并发编程,将不同线程中运行的相关任务视为单个工作单元,从而简化错误处理、取消操作,并提高可靠性和可观察性。 - JEP 471:弃用
sun.misc.Unsafe中的内存访问方法
该JEP提议弃用Unsafe类中的内存访问方法,并在未来的版本中移除。这些方法已被标准API(如JEP 193和JEP 454)取代。
此外,Project Loom和Project Jextract的早期访问版本也有所更新。
JDK 23
JDK 23的Build 25已发布,包含多个问题修复和更新。
Jakarta EE
Jakarta EE 11的发布进展顺利,已有9个规范完成,5个规范的审查将在6月3日完成,剩余的2个规范审查将在6月10日开始。预计Jakarta EE 11的GA版本将在6月底或7月初发布。
GlassFish
GlassFish 7.0.15发布,包含文档改进、依赖升级和多个问题修复,如ClassCastException和IllegalArgumentException的修复。
TornadoVM
TornadoVM 1.0.5发布,包含对向量类型的支持、OpenCL构建日志的改进,以及TornadoOptions和TornadoLogger类的优化。
Spring 框架
Spring Boot 3.0.16和2.7.21发布,包含依赖升级和多个Bug修复。Spring Cloud 2023.0.2和2022.0.7发布,包含多个子项目的更新。Spring AI 1.0.0-M1发布,引入了新的ChatClient API和多个AI模型支持。
Helidon
Helidon 4.0.9发布,包含对IndexOutOfBoundsException的修复、OCI指标库代码的重构,以及WebClientSecurity类的改进。
Quarkus
Quarkus 3.11发布,引入了新的OidcRedirectFilter接口、WebSockets Next扩展的初始安全支持,以及新的Infinispan Cache扩展。
Micronaut
Micronaut Framework 4.4.3发布,包含Micronaut Core 4.4.10、Bug修复和多个模块的更新。
WildFly
WildFly 32.0.1发布,包含组件升级和多个问题修复,如ClassCastException和NoSuchElementException的修复。
Hibernate
Hibernate Reactive 2.3.1.Final发布,包含依赖升级和NullPointerException的修复。
Apache 软件基金会
Apache Maven 4.0.0-beta-3和3.9.7发布,包含Bug修复、依赖升级和新功能,如对Maven 4.0 API的初始支持和fatjar依赖类型的支持。Camel Quarkus 3.11.0发布,包含对Quarkus Infinispan兼容性问题的修复。
JobRunr
JobRunr 7.2.0发布,包含对Spring Boot 3.3.0的支持、Kotlin 2.0.0的支持,以及对删除作业时的重试机制改进。
JHipster
JHipster 8.5.0发布,包含对Spring Boot 3.3.0的支持、OIDC声明问题的修复,以及对SonarCloud的多个问题修复。
JDKUpdater
JDKUpdater 14.0.53+75和14.0.51+73发布,包含对CVE详细信息基础URL的更新和菜单项的修改。
Gradle
Gradle 8.8发布,包含对JDK 22的完全支持、Gradle守护进程JVM的预览功能、大型项目的IDE性能改进,以及构建缓存和配置缓存的改进。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。