Java 生态周报:JDK 27 新 JEP、Azul Payara、WildFly wado 与 LangChain4j 更新

2026-05-18 19 预计阅读时间:1 分钟
来源:infoq.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:7 分钟

2026 年 5 月第二周,Java 生态多条线索同时推进:OpenJDK 为 JDK 27 锁定了三个新 JEP,Azul 带着 Payara Community 重新入场,WildFly 发布了 wado CLI 工具,LangChain4j 和 Google ADK 推出点版本,Micronaut 与 OpenXava 也各自发布了维护版本。下面逐项拆解。

JDK 27:三个 JEP 进入目标阶段

OpenJDK 本周将三个 JEP 标记为 JDK 27 的 Target 状态,意味着它们已通过评审,将在下一个 LTS 版本中落地。JEP 进入 Target 阶段是正式纳入的信号——后续主要走实现和集成测试,不会再有大方向变动。

对于还在 JDK 21 或 JDK 17 上运行的生产系统,JDK 27 的 JEP 动态值得持续跟踪:LTS 版本的特性集一旦定型,升级路径和兼容性策略就需要提前规划。建议关注 OpenJDK 官方 JEP 页面,确认这三个 JEP 的编号和范围是否影响你当前依赖的 API 或运行时行为。

Azul Payara Community:商业支持之外的社区选项

Azul 推出了 Azul Payara Community,把 Payara Server 的社区分发与 Azul 的 JVM 运行时打包在一起。这对一直用 GlassFish/Payara 开源版但又担心缺乏支持链路的团队来说,是一个折中方案——不用走商业订阅,也能获得 Azul 在 JVM 层面的优化和补丁节奏。

如果你当前在裸 Payara Community 上跑 Jakarta EE 应用,可以评估 Azul Payara Community 是否在启动速度和 GC 表现上有实际差异。切换成本不高:部署结构不变,只是换了底层 JVM 分发。

WildFly wado CLI:应用服务器管理的新姿势

WildFly 发布了 wado CLI 工具,名字取自 WildFly Admin DevOps 的缩写。它把传统通过 web console 或 jboss-cli.sh 做的管理操作,收进一条命令行管道里。

典型场景:在 CI/CD 流程中需要动态调整 datasource 配置、部署应用或检查服务器状态。wado CLI 让这些步骤可以脚本化,不再依赖交互式 shell。

# 安装 wado(假设已安装 WildFly 35+)
curl -L https://wildfly.org/downloads/wado/latest -o wado
chmod +x wado
sudo mv wado /usr/local/bin/

# 查看服务器运行状态
wado status --host=localhost --port=9990

# 部署一个 WAR 包
wado deploy --file=target/myapp.war --name=myapp

# 动态新增一个 PostgreSQL datasource
wado datasource add \
  --name=MyDS \
  --jndi=java:/datasources/MyDS \
  --driver=postgresql \
  --url=jdbc:postgresql://db-host:5432/mydb \
  --user=appuser \
  --password=secret

# 查看当前所有部署
wado deployments list

运行前需要确保 WildFly 管理接口已启用,且 --port 对应实际 management port。wado 的设计思路和 kubectl 类似——子命令 + 参数,便于嵌入 pipeline。

LangChain4j 与 Google ADK:Java AI 工具链持续迭代

LangChain4j 发布了新的点版本,Google ADK(Agent Development Kit)同样有更新。两者都在补齐 Java 在 LLM 应用开发上的工具短板。

LangChain4j 的点版本通常包含:新增模型 provider 支持、工具调用链的 bug 修复、以及 RAG 流程的 API 微调。Google ADK 则聚焦在多步骤 Agent 编排和与 Google Cloud AI 服务的集成。

下面是一个用 LangChain4j 构建最小聊天应用的示例,可直接改造接入不同模型:

// pom.xml 中添加依赖(版本号以最新点版本为准,此处示例用 1.2.x)
// <dependency>
//   <groupId>dev.langchain4j</groupId>
//   <artifactId>langchain4j-open-ai</artifactId>
//   <version>1.2.0</version>
// </dependency>

import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.service.UserMessage;

public class LangChain4jDemo {

    // 定义一个简单的 AI 服务接口
    interface Assistant {
        String chat(@UserMessage String message);
    }

    public static void main(String[] args) {
        // 替换为你自己的 API Key 和模型名称
        String apiKey = System.getenv("OPENAI_API_KEY");
        if (apiKey == null || apiKey.isBlank()) {
            System.err.println("请设置环境变量 OPENAI_API_KEY");
            return;
        }

        OpenAiChatModel model = OpenAiChatModel.builder()
                .apiKey(apiKey)
                .modelName("gpt-4o-mini")
                .build();

        Assistant assistant = AiServices.create(Assistant.class, model);

        // 发送一条消息
        String response = assistant.chat("用三句话解释 Java 的 Virtual Threads 有什么好处");
        System.out.println("AI 回复:\n" + response);
    }
}

运行方式:export OPENAI_API_KEY=sk-xxx,然后 mvn compile exec:java -Dexec.mainClass=LangChain4jDemo。这个骨架可以快速扩展——加 @SystemMessage 设定角色,用 @Tool 注解挂载自定义工具函数,或切换为 langchain4j-google-ai 模块接入 Gemini。

Micronaut 与 OpenXava:维护版本的意义

Micronaut 和 OpenXava 分别发布了维护版本。维护版本不引入新特性,但往往包含关键的安全补丁和依赖升级。对于已经在用的项目,这类版本不应跳过——尤其是 Micronaut 框架层涉及 Netty、Jackson 等底层库的 CVE 修复时。

升级与采用建议

项目 动作 优先级
JDK 27 JEP 跟踪编号,评估是否影响现有 API 中——LTS 还远,但早规划不亏
Azul Payara Community 在现有 Payara 部署上做 A/B 性能对比 低——非必须,但值得试点
WildFly wado CI/CD 中替换手动管理操作 高——脚本化收益直接
LangChain4j 升级到最新点版本,检查 provider 变更 高——AI 工具链迭代快,落后容易踩兼容坑
Google ADK 如已在 Google Cloud 上做 Agent 开发,跟进新版本 视项目而定
Micronaut / OpenXava 升级维护版本,关注 CVE 修复列表 高——安全补丁不应拖延

Java 生态的节奏在加快:LTS 版本特性提前锁定,AI 工具链月级迭代,应用服务器管理也在向 DevOps 命令行风格靠拢。保持每月扫一遍周报的习惯,比年底集中升级要省力得多。


相关推荐