Java基础、中级、高级、架构面试资料

SpringBoot 不香了,Quarkus 3.37 发布,启动快 50 倍、内存省 70%

JAVA herman 19浏览
公告:“业余草”微信公众号 AI 中转站提供免费体验,点击链接 https://unity2.ai/register?ref=3XTnndN2 进行访问,支持 Claude、ChatGPT、Gemini 等最新模型!关注业余草微信公众号,添加作者微信:xttblog2!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

Spring Boot 不香了,它的老对手 Quarkus 近日发布了 3.37 版本,启动快 50 倍、内存省 70%,这让 Serverless 终于敢用 Java 大展拳脚了。

这么香的 Quarkus,在 2026 年 6 月 24 日正式发布了 3.37 版本,迎来了 Java 云原生的新里程碑,AI 时代的性能利器。

作为红帽(Red Hat)主导的云原生 Java 框架,它备受争议。Quarkus 这次更新带来了多项重磅特性,基于 Extension 的模块化(JLink 打包)、Hibernate ORM 7.4 全面升级、Jackson 反射-free 序列化器默认启用,以及对AI 开发的原生支持。截至目前,Quarkus 社区贡献者已达 1203 人,生态日趋成熟。

Quarkus 3.37 核心新特性

新特性不多,好多特性 Spring Boot 也早已支持。

基于 Extension 的模块化

Quarkus 3.37 引入了实验性的 quarkus-jlink 扩展,标志着 Quarkus 正式向 Java Platform Module System (JPMS)迈进。这一特性允许开发者构建仅包含所需 JDK 模块的自定义运行时镜像,显著减小容器体积。

JLink 打包实验性登场,和 Spring Boot 的模块化一样成为未来架构的不二选择。

它具备的核心能力如下。

  • 编译时构建完整的模块依赖图,替代传统扁平类路径
  • 生成自包含的 JLink 镜像,无需外部 JDK
  • 容器镜像可采用 ubi-microdistroless 等极简基础镜像
  • 支持容器层共享:多个 Quarkus 应用可复用同一套 JDK + Quarkus Core 层

在技术细节上,它有以下特点。

  • 依赖 quarkus-modularity 扩展计算模块图
  • 需要 Java 25+(早期 JDK 版本的 JLink 工具存在兼容性问题)
  • 启动模块(Boot Modules)与动态模块(Dynamic Modules)分层加载
  • 与 Project Leyden AOT 预编译天然契合

对应的尝鲜命令如下所示。

quarkus extension add quarkus-jlink
quarkus build
# 输出位于 target/jlink-output/image/

这一特性目前标记为 Experimental,API 可能会有调整,但方向明确,Quarkus 4.x 的长期目标是将模块化打包作为默认方案。

文章配图参见 https://mp.weixin.qq.com/s/4oKwdvzd_kEmUpaQvNfaQA

Hibernate ORM 7.4 全面升级

Quarkus 3.37 将 Hibernate 技术栈全面升级,这属于常规依赖升级。

组件旧版本新版本
Hibernate ORM7.37.4
Hibernate Reactive3.33.4
Hibernate Search8.38.4

需要注意的是,Hibernate ORM 7.4 关键行为变更。

  1. SQL 级分页限制:分页查询现在在 SQL 层面强制执行限制,行为更严格
  2. 时间戳列 NOT NULL 约束:@CreationTimestamp@UpdateTimestamp 自动添加 NOT NULL
  3. PostgreSQL 最低版本提升至 14:旧版本 PostgreSQL 需升级
  4. Jakarta Persistence 3.2 / Jakarta Data 1.0 / Jakarta EE 11 兼容

另外,还有一个实验性的 Quarkus Data Hibernate。为此 3.37 还引入了 quarkus-data-hibernate 扩展,提供新一代数据访问层。

  • 编译时生成 Repository 实现(基于接口)
  • @Find@HQL 查询在编译期验证实体模型
  • 支持 Managed(脏检查)和 Stateless(显式写入)两种模式
  • 与 Jakarta Data 注解对齐
  • REST 集成:分页和排序参数自动从 HTTP Query 参数映射

同样值得注意的是,quarkus-data-hibernate 在 3.37 中仍为实验性,API 可能变动。现有 Panache 代码无需恐慌迁移,经典 Panache 将继续维护。

Jackson 反射-free 序列化器默认启用

这是 3.37 中最值得关注的性能优化之一。

要知道,传统的 Jackson 序列化依赖运行时反射,带来两个成本。

  1. 每次请求都进行字段内省(Field Introspection)
  2. GraalVM Native Image 需要额外的反射配置

而 Quarkus 的改进方案是,利用 Jandex 索引和 Gizmo 字节码生成,在编译时为每个 DTO 生成 StdSerializer 实现,运行时直接调用,完全跳过反射。

这样做带来的性能收益是:

  • 合成基准测试显示吞吐量提升约 12%
  • Native Image 体积和启动时间进一步优化
  • 减少 GraalVM 的 @RegisterForReflection 配置负担

同时还有兼容性保障,Quarkus 的智能回退机制确保:如果 DTO 使用了生成器不支持的 Jackson 注解(如复杂 @JsonSubTypes),自动回退到标准反射模式,不会破坏功能。

虽然默认启用,但官方还是建议通过 JSON 契约测试验证所有响应类型。

// 如需显式控制(通常不需要)
quarkus.rest.jackson.optimization.enable-reflection-free-serializers=true

REST Client 流式响应元数据提取

针对 Server-Sent Events (SSE)、NDJSON 等流式场景,3.37 引入了 RestMultiResponse

@GET
@Path("/stream")
RestMultiResponse<MyEvent> streamEvents();

开发者们现在可以从流式响应中提取 HTTP 状态码和 Header,而不仅仅是消息体。

其他重要更新

这次版本发布,还有以下几项更新。

  • Micrometer 1.16.6:可观测性增强
  • Jackson BOM 2.21.3/2.21.4:序列化器兼容性改进
  • Agroal 3.1.2/3.2:连接池稳定性
  • Vert.x 4.5.28 / Netty 4.1.135:网络层更新
  • Spring @Transactional 兼容性扩展:降低 Spring 迁移成本

Bug 修复与稳定性

除了新特性,3.37 还带来了以下关键修复。

Issue描述
#54084修复 gRPC 虚拟线程并发严重 Bug(INTERNAL half-close 错误)
#54089Spring 兼容性库支持 @Transactional 注解
#54053修复 DevUI 在 OIDC RP 自引用场景下的阻塞问题
#54054新增基于 DN 的受信任代理检查(IP 检查不可用时)

Quarkus 如何拥抱 AI

2026 年,Java AI 开发已进入生产就绪阶段。Quarkus 通过 Quarkus LangChain4j 扩展,为 Java 开发者提供了与 Python 生态媲美的 AI 开发体验。

Quarkus LangChain4j

声明式 AI 服务简单用法如下所示。

@RegisterAiService
public interface CustomerSupportBot {

    @SystemMessage("You are a helpful car rental assistant.")
    @UserMessage("Help the customer with: {{question}}")
    String chat(@MemoryId String sessionId, @V("question") String question);
}

对应的核心特性如下。

  • 声明式编程:通过注解定义 AI 服务,CDI 自动注入
  • 20+ LLM 提供商:OpenAI、Anthropic、Ollama、Azure、Google Gemini 等
  • 30+ 向量存储:pgvector、Weaviate、Redis、Elasticsearch、Qdrant 等
  • 聊天记忆管理:自动管理会话上下文,支持 Token 窗口控制
  • 工具调用(Tool Calling):AI Agent 可动态调用 Java 方法

RAG(检索增强生成)

RAG(检索增强生成)也支持。

@Inject
EmbeddingStore<TextSegment> embeddingStore;

@Inject
EmbeddingModel embeddingModel;

public String answerWithContext(String question) {
    Embedding questionEmbedding = embeddingModel.embed(question).content();
    List<EmbeddingMatch<TextSegment>> relevant = 
        embeddingStore.findRelevant(questionEmbedding, 5);
    // 将检索到的上下文注入 Prompt
}

持久化有 Hibernate EmbeddingStore(LangChain4j 1.12.1+)。

  • 直接在 PostgreSQL/MySQL 中存储向量嵌入
  • 复用现有 Hibernate Session 和事务管理
  • 无需引入独立的向量数据库

当然,MCP(Model Context Protocol)与 Agent 生态也算丰富,这里就不细表了。

总结

简单来说,Quarkus 3.37 是云原生 Java 发展的重要里程碑。

  1. 模块化(JLink)为 Java 应用瘦身开辟了新路径
  2. Hibernate 7.4 带来了更现代化的数据访问层
  3. 反射-free Jackson 让性能优化成为默认体验
  4. AI 原生支持让 Java 在 LLM 时代保持竞争力

对于 Java 开发者而言,Quarkus 已经证明,Java 不仅能跑 AI,还能跑得更快、更省、更云原生。但 Spring 始终是它迈不过去的“一道坎”。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » SpringBoot 不香了,Quarkus 3.37 发布,启动快 50 倍、内存省 70%