Micronaut Foundation 于 2026-09-27 发布 Micronaut Framework 5.2.0。这是一次平台级小版本:Core 到 5.2.8,同时带上 Data upserts、MCP 2.1、Jakarta EL 构建期表达式编译,以及 GraalVM 25.4.4.1.1、Jackson 3.2.2、Kotlin 2.4.10 的工具链对齐。若你已在 5.x,优先核对 Data / LangChain4j RAG / 托管依赖三块;尚未升到 5 的,公告明确建议借这次一起迁。
本稿只依据上述官方公告页。升级命令与各模块行为未本地验证。
平台里这一包有什么
公告列出的组件版本(与主编摘要一致,已按公告页核对):
| 组件 | 版本 | 公告要点 |
|---|---|---|
| Core | 5.2.8 | 实验性 Micronaut for Python + GraalPy;HTTP QUERY;COEP/CORP;Netty 可全局/按 server 或 client 开关;HTTP/2 receive window;singleton 销毁顺序与 @Bean(preDestroy);micronaut-reflection;Kotlin KDoc→配置元数据;Scala 扩展点;冷启动与注解处理减负 |
| Jakarta EL | 1.1.0 | Jakarta EL 6.0 完整实现;构建期编译表达式;公开 API @Experimental |
| LangChain4j | 2.3.0 | 对齐 LC4j 1.20.0;RAG 改为显式 RetrievalAugmentor / ContentRetriever bean 才启用 |
| MCP | 2.1.0 | MCP Java SDK 2.0.1 |
| Data | 5.2.0 | upserts、Oracle 事务恢复、sessionless tx、lock-free reservations、native BOOLEAN、geography、association criteria 导航 |
| SQL | 7.2.0 | 数据库依赖更新;简化 jOOQ 的 GraalVM native-image metadata |
| MongoDB | 6.2.0 | Driver 5.12.0 |
| R2DBC | 7.2.0 | MySQL / MariaDB / PostgreSQL / SQL Server R2DBC 驱动更新 |
| GCP | 6.2.0 | HTTP Function 请求体 framing、multipart 绑定修复;GCP 依赖更新 |
| Security | 5.4.0 | Reporting API 端点;匿名静态资源认证旁路 |
| Reactor | 4.3.0 | 依赖与平台对齐 |
| Views | 6.3.1 | React server-bundle 浏览器刷新;可插拔渲染上下文;可省略 hydration bootstrap |
| Test | 5.2.0 | JUnit 并行执行;Kotest 6.2.5 |
| Test Resources | 4.3.0 | Azure Cosmos emulator;thin test resources server artifact |
| Validation | 5.2.0 | 依赖与对齐更新 |
| JSON Schema | 2.2.0 | 从发现的 schema 生成 record;native image 可保留校验报告 |
| OpenAPI | 7.2.0 | $dynamicRef 扩到全部泛型形态;OpenAPI Generator 7.25.0;Swagger 2.2.55 |
| Serialization | 3.2.2 | CBOR / YAML / XML / 实验性 Protobuf;反序列化 coercion;strict builders;Jackson object identity |
| Servlet | 6.2.1 | Jetty / Tomcat / Undertow WebSocket(含 Jakarta WebSocket 注解) |
| SourceGen | 2.2.3 | JDK ClassFile 字节码后端;staged builders;@Wither;method references;record 完整支持 |
平台指南新增 Platform 5 Migration Impact 附录。托管依赖里还更新了 JUnit 6.1.3、Lombok 1.18.48、SpotBugs 4.10.4 以及托管的 Maven 构建插件。具体 BOM 坐标与插件坐标以你项目里的 Platform BOM / 官方文档为准,本文不臆造 POM 片段。
效率工具视角:先动这几处
1. Micronaut Data 5.2.0:upserts 与会话外事务
Data 侧这次变化直接落在日常 CRUD 与批处理路径上:
- upserts:合并插入与更新,少写一层「先查再写」模板。方言与冲突键语义请对照 Data 模块文档;公告只声明能力到位,未给出示例 SQL(未本地验证具体注解名与方言差异)。
- Oracle 事务恢复、sessionless transactions、lock-free reservations:偏 Oracle / 高并发预约场景。若生产线不用这些,可先记一笔,不必强行改模型。
- native
BOOLEAN、geography mapping、criteria 经 association 导航:映射与查询表达更贴近库能力,减少手写转换或拆开的 join 条件。
实务建议:升 BOM 后,把现有「查重 + insert/update」的仓库方法扫一遍,看哪些能改成 upsert;改完用集成测试盖冲突键与部分更新字段。别在没测试的情况下批量替换。
2. MCP 2.1.0 与 LangChain4j RAG 显式化
AI 相关两个模块一起升:
- Micronaut MCP 2.1.0 跟到 MCP Java SDK
2.0.1。做 Agent 工具桥或 MCP server/client 的项目,先对齐 SDK 行为变更,再谈业务能力。 - Micronaut LangChain4j 2.3.0 对齐 LangChain4j
1.20.0,并把 RAG 改成 opt-in:只有显式注册RetrievalAugmentor或ContentRetrieverbean 才会启用检索增强。
这是升级时最容易 silently 行为变化的点。以前依赖自动装配「默认就有 RAG」的应用,升到 2.3.0 后可能变成「没有检索了」。按公告字面:需要 RAG 就显式声明 bean;不需要就确认没有误注册。具体配置键与示例代码未本地验证,以 LangChain4j 模块文档为准。
3. Jakarta EL 1.1.0:表达式进构建期
新模块 Micronaut Jakarta EL 1.1.0 是 Jakarta Expression Language 6.0 的完整实现。表达式由注解处理器在构建期编译,另有可选的沙箱运行时解释器。公开 API 标了 @Experimental。
对效率工具栏的含义很直接:表达式错误尽量在编译期暴露,运行时少一层解释开销。适合配置、校验、模板类场景里想把 EL 钉死在构建图上的团队。实验 API 意味着签名与模块边界还可能动,生产接入请留回退路径。
4. GraalVM 25.4 对齐与 SourceGen ClassFile 后端
Core 把 GraalVM 更新到 25.4.4.1.1,Jackson 到 3.2.2,Kotlin 到 2.4.10。同时:
- SQL 7.2.0 简化 jOOQ 的 native-image metadata,native 构建少踩一层手工反射配置。
- SourceGen 2.2.3 增加 JDK ClassFile 字节码后端,并有 staged builders、
@Wither、method references、record 完整支持。
升级 native 镜像时,建议单独跑一条 native-image / 官方 native 测试任务,对照 Platform 5 Migration Impact 附录看反射与资源差异。冷启动与注解处理「减负」是公告表述,本文不给出未测量的百分比。
5. Core 里顺手可配的几项
不展开架构,只记可操作开关:
- HTTP
QUERY方法支持。 - Cross-Origin-Embedder-Policy / Cross-Origin-Resource-Policy 头可配置。
- Netty 可全局或按 server/client 激活与关闭。
- 可配置 HTTP/2 connection receive window。
- Singleton 销毁顺序可控,bean 类上可用
@Bean(preDestroy)。 - 新模块
micronaut-reflection;Kotlin KDoc 可生成配置元数据;Scala 有语言中立扩展点。 - 实验性 Micronaut for Python + GraalPy(实验,未本地验证)。
Test 5.2.0 支持 JUnit 并行执行;Test Resources 4.3.0 增加 Azure Cosmos emulator。本地 CI 若要开并行,先确认测试隔离与共享资源,再开 junit.jupiter.execution.parallel.enabled(具体与 Micronaut Test 的组合未本地验证)。
升级路径(按公告口径)
- 若尚未到 Micronaut Framework 5:公告写「这是一次很好的升级机会」。先读平台指南里的 Platform 5 Migration Impact,再升到 5.2.0,避免 4→5 与 5.1→5.2 混在一次大爆炸里说不清。
- 已在 5.x:把 Platform / BOM 升到 5.2.0 对应坐标,优先回归 Data upserts 候选路径、LangChain4j RAG bean、MCP SDK、native-image(若用)。
- 托管依赖会带上 JUnit
6.1.3等。测试框架大版本若从 5.x 跨到 6.x,单独看 JUnit 迁移说明;本稿不复述 JUnit 变更清单。
BOM 坐标、Gradle/Maven 插件版本以官方文档与你仓库现有约定为准。下面只给示意(未本地验证):
<!-- 示意:以官方 Platform BOM 文档为准 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.micronaut.platform</groupId>
<artifactId>micronaut-platform</artifactId>
<version>5.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
// Gradle 示意:版本号与插件 id 以官方文档为准
dependencies {
implementation platform("io.micronaut.platform:micronaut-platform:5.2.0")
}
其他模块速记(用到再深挖)
- Serialization 3.2.2:CBOR / YAML / XML / 实验 Protobuf,适合多格式边界;Protobuf 仍实验。
- Servlet 6.2.1:Jetty / Tomcat / Undertow WebSocket 与 Netty 侧更齐。
- OpenAPI 7.2.0:
$dynamicRef覆盖更完整的泛型形态。 - Views 6.3.1:React SSR 刷新与 hydration 可控。
- Security 5.4.0:Reporting API;匿名静态资源可旁路认证。
- GCP 6.2.0:HTTP Function 请求体与 multipart 绑定修复。
这些在公告里篇幅短,本文不展开配置示例,避免编造。
来源与边界
- 主源:Micronaut Framework 5.2.0 Released!(2026-09-27)
- 站内检索:无近期 Micronaut 5.x 发布稿;仅有较早期的 Micronaut vs Spring Boot 对比帖,不构成本题撞车。
- 未本地验证:BOM/插件坐标在本机能否解析、upsert 注解与方言细节、RAG bean 注册样例、JUnit 并行与 Micronaut Test 的组合、native-image 实际构建时长与反射配置差异、Micronaut for Python / GraalPy 可用性。
- 有差异时以公告页与对应模块文档为准。
一起交流
分享你的思考,让讨论更进一步。