Java技术周报:JDK 27进展、Spring AI与GlassFish里程碑版本发布
Java 新闻汇总:OpenJDK JEP、GlassFish、Spring AI、JReleaser、A2A Java SDK、Google ADK、Gradle
2026 年 4 月 27 日这一周的 Java 新闻汇总亮点包括:JDK 27 的 OpenJDK JEP、Spring AI 2.0 的第五个里程碑版本、GlassFish 9.0 的第二个里程碑版本;Quarkus、JReleaser、Gradle、LangChain4j 和 Google ADK for Java 的点版本更新;Hardwood 的第二个测试版,以及 A2A Java SDK 1.0 的第一个测试版。
OpenJDK
在评审结束后,JEP 532——模式、instanceof 和 switch 中的原始类型(第五次预览)——已从“拟定目标”(Proposed to Target)提升为 JDK 27 的“目标”(Targeted)。该 JEP 提议进行第五次预览,内容无变化,此前已在 JDK 23 至 JDK 26 中经过四轮预览。该特性增强了模式匹配,允许在所有模式上下文中使用原始类型,并将 instanceof 和 switch 结构扩展为支持所有原始类型。
JEP 533——结构化并发(第七次预览)——已从“候选”(Candidate)提升为 JDK 27 的“拟定目标”。该 JEP 提议进行第七次预览,包含少量变更,此前已在 JDK 21 至 JDK 26 中进行过六轮预览,并在 JDK 19 和 JDK 20 中进行了两轮孵化。该特性通过引入结构化并发简化了并发编程,旨在“将运行在不同线程中的一组相关任务视为一个工作单元,从而简化错误处理和取消操作,提高可靠性并增强可观测性。” 评审预计于 2026 年 5 月 5 日结束。
JEP 531——惰性常量(第三次预览)——已从“候选”提升为 JDK 27 的“拟定目标”。该特性曾被称为 StableValues,此次提议进行第三次预览,包含两项变更。变更包括:从 LazyConstant 接口中移除了 isInitialized() 和 orElse() 方法,因为它们不符合该特性的设计目标;并引入了一个新的工厂方法 ofLazy(),可以为所有三种 Java 集合类型(List、Set 和 Map)创建稳定的预定义元素。评审预计于 2026 年 5 月 6 日结束。
JEP 536——JFR 进程内数据脱敏——已从“JEP 草案 8372760”提升为“候选”状态。该 JEP 提议增强 JDK Flight Recorder(JFR),以便在 JFR 完成记录之前对敏感信息进行脱敏处理。这些数据可能包括命令行参数、环境变量的初始值以及系统属性。
JDK 27
JDK 27 早期访问版本 Build 20 已于上周发布,相比 Build 19 包含了一些更新,其中包括对各种问题的修复。有关此版本的更多详细信息,请参阅发行说明。针对 JDK 27,开发者被鼓励通过 Java Bug 数据库报告错误。
GlassFish
Eclipse GlassFish 9.0.0 的第二个里程碑版本带来了错误修复、文档改进、依赖项升级以及新特性,例如:支持 JDK 25 的 JDK 21 最小版本;实现了 Jakarta Security 5.0-M2、Jakarta Faces 5.0-M2 和 Jakarta Contexts and Dependency Injection 5.0-M1 规范;以及通过 Jakarta Security 和 Eclipse Soteria 对 JSON Web Token (JWT) 规范的新实现。更多详细信息请参阅发行说明。
Spring Framework
Spring AI 2.0.0 的第五个里程碑版本包含错误修复、文档改进、依赖项升级和新特性,例如:StructuredOutputConverter 接口的自定义实现现在可以参与原生结构化输出流水线以提高灵活性;ToolCallAdvisor.Builder 类中新增了 isConversationHistoryEnabled() 方法,用于返回内部 conversationHistoryEnabled 属性是否已启用。有关此版本的更多详细信息(包括重大变更),请参阅发行说明。
Quarkus
Quarkus 3.35.0 的版本发布提供了错误修复、依赖项升级和新特性,例如:一个实验性的构建时依赖“树修剪器”(tree shaker),用于识别并排除运行时依赖中未使用的类,从而减小应用 JAR 包大小;以及一个新的 Reactive Transactions 扩展,使 Spring Framework 的 @Transactional 注解能够支持 Hibernate Reactive。更多详细信息请参阅 3.35.1 版本 和 3.35.0 版本 的发行说明。
JReleaser
JReleaser 1.24.0 版本已发布,这是一个用于简化项目版本发布的 Java 工具。此版本包含错误修复、文档改进、依赖项升级和新特性,例如:在公告器列表中增加了对 Zernio 的支持;以及添加了一个 reproducible 标志,用于配置 JReleaser 何时输出一致的内容。更多详细信息请参阅发行说明。
LangChain4j
LangChain4j 1.14.0 的正式发布(以及第 24 个测试版)带来了错误修复、依赖项升级和新特性,例如:ReturnBehavior 枚举中新增了 IMMEDIATE_IF_LAST 属性,当工具位于 LLM 响应的最后时,从 AI 服务返回执行循环结果;以及一个新的 OpenAiOfficialResponsesChatModel 类,以与现有的 OpenAiOfficialResponsesStreamingChatModel 类对齐,供 OpenAI Responses API 使用。更多详细信息请参阅发行说明。
Micronaut
Micronaut 基金会提供了即将发布的 Micronaut Framework 5.0 的预览版,预计于 2026 年第二季度发布,其特性包括:以 JDK 25 为基准;支持已迁移或准备迁移到 JDK 25 的云厂商;性能改进;以及在 Micronaut 指南和文档中更新的代码示例。其他博客文章描述了各种特性,例如:支持 Kotlin 2.3、Groovy 5.0 和 Jackson 3.0;以及采用 JSpecify。Micronaut 5.0 也将放弃对 RxJava 2 的支持。
Gradle
Gradle 9.5.0 的 GA 版本包含显著变化,例如:对 Gradle 任务失败诊断和报告的改进,现在包含来源信息,并在客户端 JVM 不兼容时提供更清晰的日志;以及对构建创作的改进,在 DomainObjectCollection 接口中新增了 disallowChanges() 方法,使得元素无法再从集合中添加或删除。更多详细信息请参阅发行说明。
Agent2Agent Java SDK
Agent2Agent Java SDK 1.0.0 的第一个测试版发布了,这是一个实现 Agent2Agent 协议 (A2A) 以便将代理应用程序作为 A2AServers 运行的 Java 库。作为 Quarkus 和 WildFly 团队的合作成果,此新版本提供了错误修复和显著变化,例如:支持 JSON-RPC、gRPC 和 HTTP+JSON/REST 传输协议;默认使用 JdkA2AHttpClient 类以提供更灵活的 HTTP 客户端支持;以及带有详细信息的结构化错误代码。更多详细信息请参阅发行说明和这篇 Medium 文章。
Google Agent Development Kit
Agent Development Kit (ADK) for Java 1.2.0 的发布带来了错误修复和新特性,例如:向 Google Cloud BigQuery 接口添加了新的自定义遥测头;McpSessionManager 类已被添加到 McpAsyncToolset 类中定义的构建器中。更多详细信息请参阅发行说明。
Hardwood
Hardwood 1.0.0 的第二个测试版发布了,这是一个专注于 Apache Parquet 文件格式的解析器,包含显著变化,例如:支持 VARIANT 类型;以及向 Hardwood CLI 添加了一个新的子命令 dive,用于通过基于文本的 UI 交互式探索和分析 Parquet 文件。更多详细信息请参阅发行说明。