Spring Boot 与 Quarkus/Micronaut 对比

共 18 题
#

1. 三框架在微服务场景的选型建议

A Quarkus 在构建期只做配置校验,并不生成 Bean 元数据与字节码
B 生态成熟度优先选 Spring Boot,冷启动敏感场景选 Quarkus/Micronaut ✓ 正确答案
C Quarkus 生态一定比 Spring Boot 成熟
D 三框架在所有维度上完全相同
#

2. 框架选型的 TCO 维度,内存占用、启动时间、生态、团队学习成本如何权衡?

A @TestHTTPResource 只能注入 Mock 对象,无法访问真实运行的 HTTP 服务
B 生态成熟度对成本没有影响
C 需综合内存、启动、生态与学习成本,按长期总成本决策 ✓ 正确答案
D 团队学习成本可以忽略
#

3. Spring Boot 与 Micronaut 的编程模型差异

A 两者都没有编译期处理
B 两者都完全依赖运行期反射
C Micronaut 使用 @Autowired 而非 @Inject
D Spring 运行期反射扫描,Micronaut 编译期生成 Bean 元数据与注入代码 ✓ 正确答案
#

4. Spring Boot 与 Quarkus 的启动时间、内存占用、吞吐对比

A 它只在运行期翻译 Spring 注解,无法在构建期生成元数据
B Spring Boot 一定比 Quarkus 快
C Quarkus 只在 JVM 模式运行,不支持 Native
D Quarkus 通常启动更快、内存更低,响应式栈在高并发 IO 场景吞吐可能更高 ✓ 正确答案
#

5. 三框架的云原生能力对比(Kubernetes、Serverless、Service Mesh)

A 热加载每次改动都需要重新启动整个应用才能生效
B Quarkus/Micronaut 冷启动快、Native 友好,Spring Boot 生态成熟但启动较重 ✓ 正确答案
C 只有 Spring Boot 支持 Kubernetes
D 三框架冷启动速度完全相同
#

6. 三框架的开发者体验与生态成熟度对比

A Spring Boot 生态最成熟,Quarkus/Micronaut 工具链更现代但生态小于 Spring ✓ 正确答案
B Vert.x 与 Mutiny 都只负责事件循环调度,不提供任何响应式 API
C Quarkus 社区资料比 Spring 更丰富
D Micronaut 生态组件比 Spring 更全
#

7. Spring Boot 4.x 与 Quarkus 4.x 的最新特性对比

A Spring Boot 4.x 不强调模块化
B 两者都放弃虚拟线程支持
C 两者都强化虚拟线程、Native/AOT 与可观测性,但实现哲学不同 ✓ 正确答案
D Quarkus 4.x 不支持 Native
#

8. 三者选型,启动速度、内存、生态与团队熟悉度的权衡矩阵如何?

A 所有端点都固定调度到 worker 线程执行,从不使用事件循环
B 所有维度权重必须相同
C 团队熟悉度不影响选型
D 按业务场景为各维度分配权重,加权评估选择最优框架 ✓ 正确答案
#

9. 三框架的 Native Image AOT 处理路径差异(Spring AOT、Quarkus Build Step、Micronaut 编译期)

A Repository 模式把数据访问方法直接放在实体类上
B 三框架 AOT 处理路径完全相同
C Spring 偏运行期优先+AOT 补足,Quarkus/Micronaut 偏编译期/构建期优先,Native 更自然 ✓ 正确答案
D Spring AOT 完全不需要生成元数据
#

10. 三者响应式栈(WebFlux/RESTEasy Reactive/Micronaut HTTP)的线程模型差异

A Quarkus Security 只能在运行期动态装配过滤器链,无法构建期固化
B 三者都用事件循环处理非阻塞、工作线程池处理阻塞,差异在分派判定与编程 API ✓ 正确答案
C 响应式栈不支持阻塞操作
D 三者线程模型完全不同,无共同点
#

11. 从 Spring Boot 迁移到 Quarkus 的成本曲线?

A 初期学习与改造成本高,长期获得性能与资源收益,成本随熟练度下降 ✓ 正确答案
B 迁移成本全程为零
C 迁移没有任何长期收益
D 迁移成本只取决于代码量,与 Spring 特性无关
#

12. Spring Native(Spring AOT)与 Quarkus 的 Native Image 支持对比

A Quarkus 的 Native 支持依赖运行期反射,兼容性不如 Spring 顺滑
B Spring Native 比 Quarkus 更成熟
C 两者 Native 支持完全一致
D Quarkus 面向 Native 设计、支持更成熟顺滑,Spring 后补 AOT、兼容性成本更高 ✓ 正确答案
#

13. 云原生场景,Quarkus/Micronaut 的 Native 支持如何降低资源成本?

A Spring Boot DevTools 类变更时采用热替换而非重启
B Native 会增加内存占用
C Native 内存占用低、冷启动快,可提升资源利用率与弹性效率,降低基础设施成本 ✓ 正确答案
D Native 与本降低资源成本无关
#

14. 从 Spring Boot 迁移到 Quarkus/Micronaut 的兼容性,注解、依赖与测试的差异如何?

A 扩展只能在运行期通过反射把 Bean 注册进 CDI 容器
B 测试框架完全一致
C 依赖无需替换,原样可用
D 注解、依赖与测试均需映射替换,且部分语义不完全等价 ✓ 正确答案
#

15. Spring Boot 3.x→4.x 的迁移要点,Jakarta 命名空间与配置变化如何?

A 只需替换依赖版本即可
B 需关注 Jakarta EE 版本升级、配置项变化与依赖版本矩阵,系统化核对 ✓ 正确答案
C 配置项完全不变
D Jakarta 命名空间与迁移无关
#

16. 三者测试生态对比,@SpringBootTest vs QuarkusTest vs MicronautTest 如何选择?

A Spring 测试生态最弱、启动最快,适合快速反馈
B 三者启动速度完全相同
C Spring 生态成熟但启动慢,Quarkus/Micronaut 启动快、更贴近生产路径 ✓ 正确答案
D QuarkusTest 无法管理外部资源
#

17. Spring Boot 的响应式栈(WebFlux)与 Quarkus 的响应式差异?

A 扩展只包含运行期组件,没有构建期处理器(Build Step)
B 两者使用完全相同的 API
C WebFlux 用 Reactor/Netty,Quarkus 用 Mutiny/Vert.x,阻塞判定方式与集成程度不同 ✓ 正确答案
D WebFlux 也基于 Vert.x
#

18. 三者在函数式(FaaS)场景的支持(Quarkus Funqy、Micronaut Function、Spring Cloud Function)

A FaaS 函数无法使用依赖注入
B 三者冷启动完全相同
C 只有 Spring Cloud Function 支持函数式
D Quarkus Funqy/Micronaut Function 冷启动快,Spring Cloud Function 生态全但冷启动较重 ✓ 正确答案