Java 新闻综述:JDK 24 进入第二阶段、Spring Framework、JobRunr
本周 2025 年 1 月 13 日的 Java 综述重点介绍了以下新闻:JDK 24 进入 Rampdown 第二阶段;Spring Framework 6.2.2;JobRunr 7.4.0;Micrometer Metrics 1.15.0-M1 和 Micrometer Tracing 1.5.0-M1;Infinispan 加入 Commonhaus 基金会。
JDK 24
JDK 24早期版本Build 32已于上周发布,其中包含Build 31 的更新,包括对各种问题的修复。有关此版本的更多详细信息,请参阅发行说明。
根据 JDK 24 的发布时间表,Oracle Java 平台组首席架构师Mark Reinhold正式宣布JDK 24 已进入 Rampdown 第二阶段。这意味着:不会为JDK 24添加其他 JEP ;将重点关注 P1 和 P2 错误,这些错误可以通过修复请求流程进行修复。使用后期增强请求流程仍然可以进行后期增强,但 Reinhold 表示“现在的标准非常高”。2025 年 3 月 GA 版本的最终 24 个功能将包括:
- JEP 404:分代 Shenandoah(实验性)
- JEP 450:紧凑对象标头(实验性)
- JEP 472:准备限制 JNI 的使用
- JEP 475:G1 的后期屏障扩展
- JEP 478:密钥派生函数 API(预览)
- JEP 479:删除 Windows 32 位 x86 端口
- JEP 483:提前类加载和链接
- JEP 484:类文件 API
- JEP 485:流收集器
- JEP 486:永久禁用安全管理器
- JEP 487:范围值(第四个预览版)
- JEP 488:模式中的原始类型、instanceof 和 switch(第二个预览)
- JEP 489:Vector API(第九个孵化器)
- JEP 490:ZGC:删除非分代模式
- JEP 491:无需固定即可同步虚拟线程
- JEP 492:灵活的构造函数主体(第三次预览)
- JEP 493:无需 JMOD 即可链接运行时图像
- JEP 494:模块导入声明(第二预览版)
- JEP 495:简单源文件和实例主要方法(第四个预览版)
- JEP 496:基于抗量子模块格的密钥封装机制
- JEP 497:基于模块格的抗量子数字签名算法
- JEP 498:在 sun.misc.Unsafe 中使用内存访问方法时发出警告
- JEP 499:结构化并发(第四个预览版)
- JEP 501:弃用 32 位 x86 端口并将其删除
JDK 25
JDK 25早期版本Build 6也于上周发布,其中包含Build 5 的更新,包括对各种问题的修复。有关此版本的更多详细信息,请参阅发行说明。
对于JDK 24和JDK 25,鼓励开发人员通过Java Bug 数据库报告错误。
Jakarta EE
Eclipse 基金会的 Jakarta EE 开发倡导者Ivar Grimstad在其每周的Hashtag Jakarta EE博客中提供了Jakarta EE 11 的最新消息,他写道:
关于Jakarta EE 11的 TCK 重构的最新消息是,团队距离发布Jakarta EE Web Profile 11越来越近了。只剩下少量的测试需要重构,TCK 用户指南的重写工作已经开始。
围绕Jakarta EE 12 的讨论正在升温。请查看Jakarta EE 平台 GitHub 问题跟踪器EE12中标记的问题。欢迎添加新问题或参与已创建问题的讨论。
您还可以加入Jakarta EE 未来方向兴趣小组,参与有关平台应如何发展的高层讨论。如果您无法参加每两周一次的电话会议(日历),您可以随时加入邮件列表并参与其中。
Jakarta EE 11 之路包括四个里程碑版本、2024 年 12 月发布的核心配置文件,以及在 2025 年 1 季度发布平台和 Web 配置文件的 GA 版本之前根据需要发布的候选版本。
Spring Framework
Spring Framework 6.2.2的发布提供了错误修复、文档改进、依赖项升级和新功能,例如:对类进行更改以仅跟踪限定符注释,以与 Spring Boot 类保持一致;并提升注释以支持字段和类型,以与现已弃用的 Spring Boot注释保持一致。此版本将包含在即将发布的 Spring Boot 3.4.2 和 3.5.0-M1 版本中。有关此版本的更多详细信息,请参阅发行说明。BeanOverrideHandlerQualifierDefinition@MockitoBean@MockBean
Spring Data 2024.1.2 和 2024.0.8 均为服务版本,附带错误修复、依赖项升级以及对子项目的相应依赖项升级,例如:Spring Data Commons 3.4.2 和 3.3.8;Spring Data MongoDB 4.4.2 和 4.3.8;Spring Data Elasticsearch 5.4.2 和 5.3.8;以及 Spring Data Neo4j 7.4.2 和 7.3.8。这些版本将包含在即将发布的 Spring Boot 和 3.4.2 和 3.3.8 版本中。
Spring AI MCP团队发布了0.5.0 版本,以提供新功能,例如:通过新HttpServletSseServerTransport类和基于阻塞队列的 Spring FrameworkSseEmitter.SseEventBuilder接口实现增强传输层;以及新的物料清单。有关此版本的更多详细信息,请参阅发行说明。
Quarkus
Quarkus 3.17.7 是第六个维护版本(由于回归问题,跳过了 3.17.1),具有显著的变化,例如:解决了当方法使用@PermissionsAllowed多个值注释时,注释中的参数@PermissionChecker无法正确匹配的问题;并且切换到在启动时执行MongoDB 连接健康检查,而不是在应用程序尝试将第一条记录存储在数据库中时执行。有关此版本的更多详细信息,请参阅变更日志。
Micrometer Metrics
Micrometer Metrics 1.15.0的第一个里程碑版本提供了错误修复、文档改进、依赖项升级和新功能,例如:尽可能使用AssertJ类中定义的;以及一致使用 Java方法和,以提高安全性。有关这些版本的更多详细信息,请参阅发行说明。failWithActualExpectedAndMessage()AbstractAssertStringtoLowerCase()toUpperCase()Locale.ROOT
类似地,Micrometer Metrics 1.14.3 和 1.13.10 版本附带依赖项升级和对一些值得注意的问题的解决方案,例如:NullPointerException在返回 a 的方法上应用方面时;以及在类中定义的方法CompletableFuture的性能回归,其中包含大量注册的仪表。有关这些版本的更多详细信息,请参阅1.14.3 版和1.13.10 版的发行说明。remove()MeterRegistry
Micrometer Tracing 1.5.0的第一个里程碑版本提供了错误修复、依赖项升级和新功能:避免创建类实例的多余副本;并添加了本地服务名称设置和检索以补充远程服务名称。有关此版本的更多详细信息,请参阅发行说明。OtelSpanFinishedSpan
NullPointerException类似地,Micrometer Tracing 1.4.2 和 1.3.8 版本提供:依赖项分别升级到 Micrometer Metrics 1.14.3 和 1.13.10,以及当类的实例将和字段OtelTraceContextBuilder设置为与接口中的相同字段对齐时解决。有关这些版本的更多详细信息,请参阅1.4.2 版和1.3.8 版的发行说明。parentIdsampled@NullableTraceContext
Piranha
Piranha 25.1.0的发布带来了许多依赖项升级和显著的变化,例如:一个新类来补充其自己的API;以及解决类实例在异步请求时不会无限期暂停的问题。有关此版本的更多详细信息,请参阅发行说明、文档和问题跟踪器。SecurityConstraintSecurityManagerGrizzlyHttpServer
Project Reactor
Project Reactor 2024.0.2 是第二个维护版本reactor-core 3.7.2,提供对、reactor-netty 1.2.2、 的依赖项升级reactor-pool 1.1.1。版本 2024.0.2 也进行了重新调整,其中reactor-addons 3.5.2、reactor-kotlin-extensions 1.2.3和reactor-kafka 1.3.23工件保持不变。有关此版本的更多详细信息,请参阅变更日志。
同样,Project Reactor 2023.0.14(第十四个维护版本)提供了对reactor-pool 1.0.9和 的依赖项升级reactor-netty 1.1.26。版本 2023.0.12 也进行了重新调整,其中reactor-core 3.6.13、reactor-addons 3.5.2和工件保持不变。有关此版本的更多详细信息reactor-kotlin-extensions 1.2.3,reactor-kafka 1.3.23请参阅变更日志。
JobRunr
JobRunr 7.4.0版本附带:支持 JDK 24、Spring Boot 3.4 和 Kotlin 2.1。增强功能包括:RecurringJobPostProcessor在启动 Spring Boot 和类之前等待类的所有实例完成;并确保在所有 SQL 脚本中使用正确的大小写。如果类的实例配置了该选项BackgroundJobServer,则还有一个解决方案可以跳过集合验证。有关此版本的更多详细信息,请参阅发行说明。MongoDBStorageProviderNO_VALIDATE
OpenXava
OpenXava 7.4.5版本提供了错误修复、文档改进、依赖项升级和增强功能,例如:向类中添加了一种新方法,用于过滤任何列中的字符串值;向实用程序类中添加了一种新方法,用于确定 Java 标识符是否存在。有关此版本的更多详细信息,请参阅发行说明。filterByContentInAnyProperty()TabisJavaIdentifier()Strings
Commonhaus
Commonhaus 基金会是一家致力于开源库和框架可持续性的非营利组织,该基金会于上周宣布Infinispan已加入该基金会。在 2025 年 1 月中旬发表的一篇博客文章中,Red Hat 高级首席软件工程师兼 Infinispan 项目负责人Tristan Tarrant描述了他们转向该基金会的理由,他写道:
Commonhaus 满足了我们所有的需求:其轻量级治理非常理想。我们获得了加入这个优秀基金会的所有好处,并获得了按照自己的方式运行项目的所有好处。
Commonhaus 也是许多“友商项目”的所在地:Hibernate、Quarkus、Debezium、Jackson 都在我们的软件中发挥着关键作用,我们共享一个“共同的家”,这真是太好了。
加入该基金会的其他著名项目包括:JReleaser、JBang、OpenRewrite、SDKMAN、EasyMock、Objenesis和Feign。