比 Spring Boot 快好几倍,内存还省一半的 Java 框架!
大家好我是Java1234_小锋老师。如果你做过微服务、上过 Kubernetes大概率遇到过这种场景服务一扩容内存蹭蹭涨冷启动慢到让人抓狂。今天聊的Quarkus就是 Red Hat 专门为云原生时代打造的 Java 框架——启动快、占内存少写起来还像 Spring 一样顺手。一、Quarkus 是什么Quarkus读作「夸儿克斯」是 2019 年由 Red Hat 发布的开源 Java 框架口号很直白Supersonic Subatomic Java——超音速、亚原子级轻量。它不是什么「另起炉灶」的新语言你依然写熟悉的 Java 代码用 JAX-RS 写接口、用 CDI 做依赖注入但底层思路变了把大量工作从「运行时」挪到「编译时」让应用启动更快、运行更轻。简单说Quarkus 是写给容器、Kubernetes、Serverless这些场景的 Java 框架。二、为什么它比 Spring Boot 更快、更省内存传统 Spring Boot 的启动流程大致是这样启动 JVM扫描所有注解反射创建 Bean加载自动配置JIT 预热应用就绪每一步都要花时间、占内存。一个中等规模的 Spring Boot 应用冷启动25 秒、内存300500 MB并不稀奇。Quarkus 换了个思路——编译时优化JVM 模式Native 模式编写 Java 代码Quarkus 扩展在编译期处理生成优化后的运行时代码是否打 Native 包?0.3 秒左右启动50 毫秒内启动核心差异可以概括成一句话对比项Spring BootQuarkus优化时机主要在运行时反射 扫描主要在编译时代码生成JVM 启动通常 25 秒通常 0.31 秒JVM 内存300500 MB 常见150200 MB 左右Native 启动Spring Native 约 100 ms可低至 1050 msNative 内存约 150 MB约 70 MB数据来源综合自 ITNEXT 2026 基准测试、Java Code Geeks 多篇对比文章。实际数值会因业务复杂度、依赖多少而波动但Quarkus 在启动和内存上 consistently 更优是业界共识。三、一张图看懂两者差异左边是 Spring Boot 的「先启动、再干活」右边是 Quarkus 的「编译时就准备好启动即就绪」。这就是它快好几倍、内存省一半的根本原因。四、5 分钟上手写一个 REST 接口1. 创建项目用 Quarkus 官方脚手架选 REST 扩展即可# 使用 Quarkus CLI 创建项目quarkus create app com.example:hello-quarkus\--extensionrest,rest-jacksoncdhello-quarkus或者用 code.quarkus.io 网页勾选扩展下载即用。2. 写一个 REST 资源类packagecom.example;importjakarta.ws.rs.GET;importjakarta.ws.rs.Path;importjakarta.ws.rs.Produces;importjakarta.ws.rs.core.MediaType;importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;/** * 示例 REST 接口 * 访问路径/hello */Path(/hello)publicclassHelloResource{privatestaticfinalDateTimeFormatterFORMATTERDateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);/** * 返回问候语和当前时间 */GETProduces(MediaType.APPLICATION_JSON)publicGreetinghello(){returnnewGreeting(Hello, Quarkus!,LocalDateTime.now().format(FORMATTER));}/** 响应数据对象 */publicrecordGreeting(Stringmessage,Stringtime){}}3. 用 CDI 做依赖注入Quarkus 默认用 CDIContexts and Dependency Injection写法和 Spring 很像packagecom.example;importjakarta.enterprise.context.ApplicationScoped;importjakarta.inject.Inject;importjakarta.ws.rs.GET;importjakarta.ws.rs.Path;importjakarta.ws.rs.Produces;importjakarta.ws.rs.core.MediaType;/** * 带依赖注入的 REST 接口 */Path(/users)publicclassUserResource{InjectUserServiceuserService;GETProduces(MediaType.APPLICATION_JSON)publicStringlist(){returnuserService.getUserCount();}}/** * 业务服务层 */ApplicationScopedpublicclassUserService{publicStringgetUserCount(){return当前用户数128;}}4. 本地开发模式热重载# 开发模式改代码自动生效不用重启./mvnw quarkus:dev浏览器访问http://localhost:8080/hello就能看到 JSON 响应。开发体验和 Spring Boot 的spring-boot-devtools类似但启动更快。5. 配置文件application.properties写法也很熟悉# 服务端口 quarkus.http.port8080 # 应用名称 quarkus.application.namehello-quarkus # 开启 OpenAPI 文档需添加 quarkus-smallrye-openapi 扩展 quarkus.swagger-ui.always-includetrue五、几个值得记住的核心特性① 扩展机制ExtensionQuarkus 的功能以「扩展」形式提供比如quarkus-hibernate-orm-panache数据库、quarkus-resteasy-reactive响应式 REST。扩展在编译期就把配置、反射信息处理好了运行时几乎零开销。② Panache更简洁的数据库操作packagecom.example.entity;importio.quarkus.hibernate.orm.panache.PanacheEntity;importjakarta.persistence.Entity;/** * 用户实体 —— 继承 PanacheEntity 后自带 CRUD */EntitypublicclassUserextendsPanacheEntity{publicStringname;publicStringemail;/** 按名称查询 */publicstaticUserfindByName(Stringname){returnfind(name,name).firstResult();}}一行User.findByName(张三)就能查库比 JPA Repository 省不少样板代码。③ 响应式优先Quarkus 底层基于 Vert.x天然支持响应式编程。高并发场景下Reactive 栈的吞吐量往往比传统阻塞式高出一截。④ 开发体验友好quarkus:dev热重载内置 Dev UIhttp://localhost:8080/q/dev/和 Spring 类似的注解风格学习成本低六、Native 镜像启动快到毫秒级如果你要把应用部署到 AWS Lambda、Knative 这类按次计费的环境Native 镜像是杀手锏。# 打包成 Native 可执行文件需要 GraalVM./mvnw package-Pnative# 运行./target/hello-quarkus-1.0.0-SNAPSHOT-runner打包后是一个独立二进制不需要 JVM启动时间可压到1050 毫秒内存占用约70 MB。Java 源码Maven/Gradle 编译Quarkus 扩展处理GraalVM Native Image独立可执行文件 .exe / 无扩展名毫秒级启动 极低内存当然Native 编译时间比 JVM 包长一些通常几分钟适合生产部署不适合每次改一行代码就编一次。七、适合用 Quarkus 的场景场景为什么选 QuarkusKubernetes 微服务Pod 多、密度高内存省 省钱Serverless / FaaS冷启动快不会被计费拖垮边缘计算 / IoT资源有限跑不动臃肿的 JVM 应用高并发 API 网关响应式栈吞吐高、延迟低新项目、云原生优先没有历史包袱直接享受编译时优化八、和 Spring Boot 怎么选这不是「谁取代谁」的问题而是「什么场景用什么工具」。选 Quarkus如果你新项目目标就是 K8s / 云原生对启动时间和内存敏感Serverless、弹性伸缩团队愿意接受相对小一些的生态但主流中间件都有扩展继续用 Spring Boot如果你大型企业项目深度依赖 Spring Cloud、Spring Security 全家桶团队 Spring 经验丰富迁移成本是首要考量应用长期运行、对冷启动不敏感比如单体后台两个框架的代码风格有相似之处有 Spring 基础的开发者通常一两周就能上手 Quarkus。九、写在最后Quarkus 不是来「干掉」Spring Boot 的。它解决的是一个很实际的问题Java 在云原生时代太重了。通过把反射、扫描、配置这些脏活累活提前到编译期Quarkus 让 Java 应用也能像 Go、Rust 那样轻快启动、省内存运行。对于微服务、容器化、Serverless 这些越来越主流的场景它确实是一个值得认真考虑的选项。如果你正被启动慢、内存高折磨不妨花一个下午试试quarkus create app com.example:my-first-quarkus--extensionrestcdmy-first-quarkus ./mvnw quarkus:dev亲身体验一下那个启动速度可能会让你对 Java 刮目相看。

相关新闻

stm32cubeide 保存备份位置 地址

stm32cubeide 保存备份位置 地址

因为这个软件存在暂时下载不了的risk,所以我备份了,有备无患他现在被我安全的封印在我的189云盘里面

2026/10/11 9:53:35 阅读更多 →
FlashAttention数据流优化:MI50显存与带宽瓶颈实战

FlashAttention数据流优化:MI50显存与带宽瓶颈实战

1. 这不是“又一个Attention优化教程”,而是我在GPU显存墙边亲手焊上的数据流导管你搜到这篇笔记,大概率正被Transformer推理时那几GB凭空消失的显存搞到头皮发麻——明明模型参数才2B,batch size设成1就报OOM,把sequence length从…

2026/10/12 9:13:44 阅读更多 →
影刀RPA新手教程:机器人管理与多机部署入门

影刀RPA新手教程:机器人管理与多机部署入门

影刀RPA新手教程:机器人管理与多机部署入门 流程在单机上跑顺了之后,几乎每个用影刀RPA做自动化的人都会遇到同一堵墙:流程越来越多,一台电脑排不开;夜里任务挂了没人管;几台机器各跑各的,执行记…

2026/10/11 6:06:42 阅读更多 →

最新新闻

libwebsockets 异步 DNS 的 DNSSEC 信任链验证:用自签名私有层次与伪 nameserver 跑通从根 KSK 到任意 zone 的完整认证

libwebsockets 异步 DNS 的 DNSSEC 信任链验证:用自签名私有层次与伪 nameserver 跑通从根 KSK 到任意 zone 的完整认证

后端网络通信 【免费下载链接】libwebsockets canonical libwebsockets.org networking library 项目地址: https://gitcode.com/gh_mirrors/li/libwebsockets 点击查看 免费下载 本篇指南基于 libwebsockets 仓库中的自测程序 api-test-dnssec-chain 展开&#xf…

2026/10/13 7:44:11 阅读更多 →
VRP工程化实践:从算法黑箱到可验证可落地的智能调度模块

VRP工程化实践:从算法黑箱到可验证可落地的智能调度模块

简介:本资源是一套面向运筹优化与智能算法学习者的VRP问题求解程序集,聚焦带时间窗约束的车辆路径规划(VRPTW),适用于物流调度、智能交通、算法课程设计及竞赛备赛等场景。资源共88个文件,涵盖62个txt参数与…

2026/10/13 7:44:11 阅读更多 →
MySQL 8.0.22环境变量配置详解:解决“mysql不是内部或外部命令”问题

MySQL 8.0.22环境变量配置详解:解决“mysql不是内部或外部命令”问题

刚换电脑时把某个常用工具的压缩包解压出来,想直接在命令行启动:提示“mysql不是内部或外部命令,也不是可运行的程序或批处理文件”。一开始我还以为解压包坏了,重新下载了一遍,问题依旧。后来才反应过来,不…

2026/10/13 7:44:11 阅读更多 →
MySQL慢SQL优化全流程:从定位到索引设计实战

MySQL慢SQL优化全流程:从定位到索引设计实战

1. 全流程思路:慢SQL从发现到根治到底该怎么走做了这么多年MySQL调优,我发现很多同学一上来就盯着索引使劲,或者看见慢查询日志就慌,其实这是本末倒置。MySQL性能优化有一套完整的链路,核心是"先定位、再分析、后…

2026/10/13 7:44:11 阅读更多 →
RabbitMQ、Kafka、RocketMQ选型指南:三大消息中间件深度对比

RabbitMQ、Kafka、RocketMQ选型指南:三大消息中间件深度对比

做技术选型,最怕的不是不知道选哪个,而是拿着一个现成的锤子到处找钉子。我见过不少团队,因为盲目追捧某些中间件,把一个简单的业务集成场景搞得异常复杂;也见过有人贪图某个中间件"轻量易用",硬…

2026/10/13 7:44:11 阅读更多 →
MySQL通配符使用与性能优化:从LIKE语法到索引陷阱

MySQL通配符使用与性能优化:从LIKE语法到索引陷阱

前几天在帮同事排查一条慢查询,一条模糊搜索的SQL把接口拖到了1.2秒,数据量才不到200万行。一看语句, WHERE customer_name LIKE %某某% ,典型的通配符前置写法,直接把索引废掉了。后来改成前缀匹配加覆盖索引&#…

2026/10/13 7:43:11 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →