编译期宏
声明式 @Controller/@Service 宏在编译期生成等价代码,零运行时反射,启动极快。--debug-macro 可审计展开结果,行为完全透明。
ACE(Agent for Cangjie to Engine)是一套用仓颉语言编写的服务端框架。它的定位对标 Spring / MidwayJS,技术路线对标 Micronaut / Quarkus——编译期宏而非运行时反射。请求生命周期从 stdx HTTP 服务器入口出发,经过 Koa 式洋葱中间件内核,再到声明式宏层(@Controller / @Service / @Inject / @Get),最后到达业务逻辑,全程不依赖任何反射或动态代理机制。
| 特性 | ACE | Spring Boot | Micronaut |
|---|---|---|---|
| 语言 | 仓颉(Cangjie) | Java / Kotlin | Java / Kotlin / Groovy |
| 依赖注入 | 编译期宏生成 | 运行时反射 | 编译期 AOT |
| 启动时间 | 极快(无反射扫描) | 慢(类路径扫描) | 快(AOT) |
| 内存占用 | 低 | 高 | 中 |
| 中间件模型 | Koa 洋葱 | Servlet Filter 链 | Netty Pipeline |
| AOP 织入 | 编译期宏 | 运行时 CGLIB | 编译期 AST |
| ORM | 内置零反射 ORM | JPA/Hibernate(反射) | Micronaut Data(AOT) |
| 原生镜像 | 天然支持 | 需 GraalVM 额外配置 | 支持 |
| 生态 | 仓颉标准库 + stdx | Maven Central(庞大) | Maven Central |
ACE 的核心主张只有一条:把框架的工作尽量前移到编译期,让运行时只做真正必须在运行时做的事。这使得 ACE 应用具备极低的启动延迟、可预测的内存占用,以及对仓颉原生 AOT 编译的天然友好性。