Java 新闻综述:JDK 24 进入第二阶段、Spring Framework、JobRunr

createh52个月前 (01-24)技术教程22

本周 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.2reactor-kotlin-extensions 1.2.3reactor-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.13reactor-addons 3.5.2和工件保持不变。有关此版本的更多详细信息reactor-kotlin-extensions 1.2.3reactor-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。

相关文章

Java标识符和关键字有哪些?(java标识符和关键字有哪些区别)

在编写Java程序时,我们常常需要为类、变量、方法等命名。这些名称在Java中被称为标识符。标识符是开发者自定义的,用来表示各种程序元素。与此相对,有一些名称被Java语言赋予了特定的含义,只能用于特...

Java语言的标识符(JAVA语言的标识符是区分大小写的)

Java语言的标识符:对类名、属性名、方法名、变量名等要素的命名使用称之为标识符(英文:identifier)。Java中对标识符的规定:标识符可以由26个字母、数字、下划线`_`、特殊符号`$`所组...

「书讯」面向对象程序设计(Java)(面向对象程序设计教程)

《面向对象程序设计(Java)》作者:李建勋,郭建华,佟瑞 著出版日期:2021年4月开本:16开出版社:经济管理出版社小编推荐面向对象程序设计是一种接近人类思维活动的计算机软件程序设计思想,其具备...

初学Java者需要了解什么 Java基础知识有哪些

  初学Java者需要了解什么?Java基础知识有哪些?学习Java的发展前景广阔且发展方向多样性,不仅可以成为高级技术开发人才,还可以向管理岗发展,成为项目经理。通过分析企业对求职者的招聘技能,我们...

Java里的输入与输出语句(java的输入和输出程序的编写)

前言我们在前面的文章中,学习了如何创建Java文件,也学习了Java里的标识符、运算符、进制等内容。有些同学觉得还不够过瘾,给壹哥发来了好多私信,期待我能够把进度更新的再快一点。这不,新内容这就给大家...