跳到正文
Elaine Blog
返回

Spring、Jakarta EE、Quarkus 与 Micronaut 选型

Spring 生态与源码

框架选型没有脱离场景的冠军。先把业务约束和交付环境量化,再用同一个最小业务验证候选,最后记录适用边界和退出成本。

Table of contents

Open Table of contents

从目标而不是品牌开始

RuntimeChoiceSample下载把目标映射为调查起点:

mvn -Dtest=SpringSourceLabTest#frameworkChoiceStartsFromADeploymentGoal test

代码故意不会自动给出唯一答案;启动速度和内存目标必须通过真实依赖与部署平台测量。

四种选择的重心

方案主要优势重点验证
Spring Boot生态广、集成与人才多自动配置复杂度、启动与依赖规模
Jakarta EE标准 API、服务器实现可替换目标运行时、厂商扩展和运维方式
Quarkus构建期增强、容器与原生体验扩展兼容、开发模式和迁移成本
Micronaut编译期 DI、较少运行时反射生态覆盖、注解处理和团队经验

表格只给调查方向,版本功能会变化。最终 ADR 必须引用候选版本的官方文档和实际实验结果。

实现同一个垂直切片

候选样例至少包含 REST、JSON 校验、数据库事务、认证、健康指标、配置密钥和一个外部调用。测试:

  1. 全量构建和增量反馈时间;
  2. 冷启动、空闲 RSS、稳态吞吐与 P99;
  3. 错误诊断、追踪和堆栈可读性;
  4. 依赖升级、漏洞修复与原生构建;
  5. 优雅停机和故障恢复。

不要只比较 Hello World,也不要只用供应商基准。

组织成本通常大于框架差异

现有库、平台模板、监控、测试工具和开发经验会显著影响总成本。迁移能带来的可量化收益若小于重写、培训和双轨运维成本,保留现有框架并治理模块边界可能更合理。

完成本阶段后,你应能从 BeanDefinition 一直追到代理、事务、MVC、自动配置和生产运行,而不是用注解名称代替机制解释。

下一步

当前 05.Spring生态与源码 阶段到此完成。按照暂停约定,本轮不进入 06.MyBatis、MySQL与数据架构;恢复目标后再从 MyBatis 配置解析开始。


分享这篇文章:

上一篇
AOT、GraalVM Native Image 与 CRaC
下一篇
MyBatis 配置解析与核心对象