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 命令行风格靠拢。保持每月扫一遍周报的习惯,比年底集中升级要省力得多。