Java 生态周报:Micronaut 5.0 正式发布,Spring AI 2.0 推进第七个里程碑

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

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

预计阅读时间:9 分钟

2026 年 5 月的 Java 生态迎来一波密集发布——Micronaut 5.0 跃升正式版、WildFly 40 GA 落地、Apache Fory 1.0 出炉,Spring AI 2.0 则持续推进里程碑。这些版本背后各有值得关注的工程决策,下面逐项拆解。

Micronaut 5.0:大版本升级的代价与收益

Micronaut 5.0 从里程碑走到 GA,意味着 API 变动已冻结,生产环境可以跟进。大版本号跳升通常伴随不兼容变更,迁移前需要确认几件事:

  • 依赖基线升级——Micronaut 每个大版本都会抬升 JDK 最低要求或核心依赖版本。5.0 大概率要求 JDK 17+,并可能更新 Netty、Jackson 等底层库版本。
  • 编译时 AOT 变化——Micronaut 的核心竞争力是编译时注入和 AOT,5.0 如果调整了注解处理器行为,之前靠反射绕过的代码可能编译报错。
  • 模块拆分——大版本常做模块重组,检查 micronaut-* 依赖坐标是否改名或移包。

快速验证 5.0 是否能跑起来,最直接的方式是用 Micronaut Launch 生成骨架:

# 用 CLI 生成一个最小 Micronaut 5.0 项目
mn create-app my-micronaut5-app --features=http-client,annotation-api
cd my-micronaut5-app
./mvnw mn:run

如果已有 4.x 项目,迁移第一步是改 pom.xmlbuild.gradle 里的 BOM 版本号,然后跑一遍编译,看哪些 import 报红。Micronaut 官方通常会发布 migration guide,建议逐条对照而非批量替换。

Spring AI 2.0 M7:离正式版还有多远?

第七个里程碑意味着核心 API 在反复打磨。Spring AI 的定位是给 Spring 生态提供统一的 AI/LLM 集成层——从模型调用、向量存储到 Prompt 模板,都走 Spring 的抽象风格。

M7 阶段的代码可以用于验证架构思路,但 API 随后仍可能变动,不建议直接上生产。如果想提前试水,可以这样引入:

<!-- pom.xml 中引入 Spring AI 2.0 M7 BOM -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.ai</groupId>
      <artifactId>spring-ai-bom</artifactId>
      <version>2.0.0-M7</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <!-- 以 OpenAI 为例,其他模型供应商有对应模块 -->
  <dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
  </dependency>
</dependencies>
# application.yml 最小配置
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      base-url: https://api.openai.com
// 一个最简的 ChatClient 调用示例
@RestController
public class AiController {

    private final ChatClient chatClient;

    public AiController(ChatClient chatClient) {
        this.chatClient = chatClient;
    }

    @GetMapping("/ask")
    public String ask(@RequestParam String question) {
        return chatClient.prompt()
                .user(question)
                .call()
                .content();
    }
}

启动前设置环境变量 OPENAI_API_KEY,然后访问 /ask?question=你好 即可验证链路。M7 的价值在于确认 Spring AI 的抽象是否适配你的业务场景——比如是否需要流式响应、RAG 管道、或多模型切换。这些能力 Spring AI 都在构建,但具体 API 形态可能到 GA 才稳定。

WildFly 40 与 Open Liberty:应用服务器仍在迭代

WildFly 40 GA 和 Open Liberty 2026 年 5 月版同步发布,说明传统应用服务器市场仍有持续需求。WildFly 40 的关注点通常在:

  • Jakarta EE 对齐——跟进最新 Jakarta EE 11 规范的实现进度。
  • MicroProfile 支持——对配置、健康检查、指标等 MicroProfile API 的版本更新。
  • 运行时优化——子系统启动顺序、内存占用的渐进改善。

Open Liberty 的月度发布节奏更频繁,每次更新都附带具体的 feature 增补和 fix 列表。如果你的团队在 Jakarta EE 生态里,这两个项目值得定期跟踪 release notes,尤其是安全补丁和配置兼容性变更。

Apache Fory 1.0:新序列化框架入场

Apache Fory 从孵化走到 1.0 GA,意味着它认为自己已经可以承担生产负载。Fory 的定位是高性能、跨语言序列化——与 Protobuf、Avro 等成熟方案同赛道。

1.0 版本的关注点:

  • 跨语言 IDL 是否稳定——跨语言序列化的核心是 schema 定义和兼容性规则,1.0 应该已经锁定。
  • 性能基准——官方大概率提供了与 Protobuf/FlatBuffers 的对比数据,但建议用自己的数据模型跑一遍。
  • Java 集成难度——看是否提供了与主流框架(Spring、Flink 等)的适配模块。
// Apache Fory 1.0 最简序列化/反序列化示例(假设已引入 fury-core 依赖)
import org.apache.fory.Fory;
import org.apache.fory.config.Language;

public class ForyDemo {
    public static void main(String[] args) {
        Fory fory = Fory.builder()
                .withLanguage(Language.JAVA)
                .requireClassRegistration(true)
                .build();

        // 注册要序列化的类(安全要求)
        fory.register(User.class);

        User user = new User("张三", 28);
        byte[] bytes = fory.serialize(user);
        User restored = (User) fory.deserialize(bytes);

        System.out.println(restored.name + " - " + restored.age);
    }

    static class User {
        String name;
        int age;
        User(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
}

requireClassRegistration(true) 是 Fory 的安全默认值——只允许序列化已注册的类,防止反序列化攻击。如果你的场景需要序列化任意类型,可以关掉,但务必评估风险。

其他版本更新

  • Maven Embedded GlassFish Plugin 8.0——用于集成测试中嵌入式启动 GlassFish,8.0 对齐了最新 GlassFish 运行时。如果你的项目还在用 GlassFish 做测试容器,升级后注意 pom 里的 plugin 配置是否需要调整。
  • Gatherers4j——Java Stream Gatherers 的实用扩展库,point release 通常是 bug 修复和小功能增补。
  • Apache Kafka point release——小版本更新,重点看安全修复和客户端兼容性说明,尤其是如果你在用 KRaft 模式。

升级决策清单

面对这一波发布,建议按优先级排动作:

  1. 安全补丁优先——Kafka、WildFly 等如果涉及安全修复,立刻评估是否受影响。
  2. 大版本观望——Micronaut 5.0 和 Apache Fory 1.0 是大版本,先在非核心项目试跑,确认依赖兼容后再推广。
  3. 里程碑尝鲜——Spring AI 2.0 M7 适合做技术预研,验证 AI 集成架构是否走 Spring 抽象路线,但暂不绑定生产 API。
  4. 小版本顺手升——Gatherers4j、Kafka point release 这类更新风险低,随常规依赖升级一起推进即可。

每个版本的具体 release notes 是最终依据——本文基于摘要信息梳理方向,细节请回源确认。


相关推荐