跳到主要内容
稳定版 v2.0.3

Coco Framework

Spring Boot 服务端基础设施框架

一个 Starter 接入统一响应、异常处理与 TraceId。按需选择数据、流控和平台能力,业务代码仍是普通 Java 与 Spring。

<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
</dependency>
# features are opt-in
coco:
idempotency:
enabled: true
@CocoIdempotent(namespace = "orders")
OrderResponse create(@RequestBody CreateOrder cmd) {
return orders.create(cmd);
}

引入 Starter

  • 17主干功能标识
  • 1Starter 接入
  • Java 17+业务编译目标
  • Apache-2.0开源许可

功能导览

默认值有明确边界,需要定制时有清晰的替换入口。

功能开关与配置
  1. Web 请求

    每个接口行为一致

    • 统一响应与异常
    • TraceId 日志
    • 签名与防重放
  2. 数据与权限

    隔离落在查询链路上

    • MyBatis-Plus 分页
    • 租户 SQL 隔离
    • 数据权限
  3. 流控与可靠性

    高频与重复请求有边界

    • 限流与幂等
    • 锁与调度
    • 存储可替换
  4. 文件与平台

    通用能力随项目生长

    • 文件存储
    • 两级缓存与消息
    • 通知与验证码
  5. 审计与可观测性

    重要操作留下线索

    • 审计事件
    • 日志上下文传播
    • OpenAPI
  6. 功能与扩展

    只带需要的能力

    • 功能开关
    • 构建期裁剪
    • Bean 与 SPI 替换

清晰分层,业务保持自由。

Controller 还是普通 Spring 代码。用户、组织、认证提供者和事务边界由你决定。

统一响应、全局异常与 TraceId 默认生效。数据库、Redis、认证、租户及其他外部服务仍需按需配置。

架构与设计边界
  1. 业务应用

    领域模型 · Controller · 事务

  2. Starter

    统一接入 · 自动装配

  3. Features

    按需选择的基础设施能力

  4. Foundation

    公共契约 · 上下文 · 日志

从一个接口开始。

打开快速开始指南
  1. 引入依赖

    采用 coco-parent,添加 Starter;版本以正式发布记录为准。

  2. 选择能力

    通过 YAML 调整功能开关,配置需要的数据库或外部服务。

  3. 启动应用

    编写普通 Spring Controller,运行 Spring Boot 应用。

  4. 验证响应

    请求接口,检查统一响应、异常输出与 TraceId。

一个生态,三份清晰的职责。

Admin → Framework(运行时);Generate → 业务源码(开发期)。

Framework

服务端基础设施。独立运行,不依赖 Admin 或 Generate。

coco-framework

Admin

基于 Framework 的 ERP 产品,持有用户、组织与业务流程。

coco-admin

Generate

开发期生成普通源码,生成结果由业务仓库维护。

coco-generate

社区与贡献

遇到接入问题、想补一个能力,或者发现文档可以更清楚?欢迎一起完善 Coco。

如果 Coco 对你有帮助,欢迎在 GitHub 上 Star。