跳到主要内容
最新稳定版 v2.0.3
COCO / FRAMEWORK

Coco Framework

少写基础设施,多写业务。

响应、异常、链路、权限,不必每个项目重新拼装。Coco 把通用能力准备好,让你专注于产品本身。

● ● ●pom.xmlJAVA / MAVEN
一个 Starter,业务代码依然由你掌控。
<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
</dependency>
配合 coco-parent 或 Coco BOM 使用。 完整接入步骤
GET /hello200 OK

统一响应 · 全局异常 · TraceId

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

本页介绍当前主干的 17 项功能标识,包含 Codegen 兼容项;2.0.3 已发布,具体开关与配置请查阅文档。

01 / WHY COCO

这些工作,你不必再做一遍。

每个项目都有自己的业务,但很多准备工作是相同的。

又在复制基础代码?

统一响应、异常处理和 TraceId 自动接入,少维护一套跨项目重复代码。

配置越来越难梳理?

用 YAML 或注解选择能力,构建时裁剪关闭的模块,运行时沿用同一份功能计划。

从单机走向多实例?

限流、幂等和锁提供可替换的存储接口;结合部署方式显式选择 Redis 等实现。

框架开始约束业务?

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

02 / CAPABILITIES

常用能力,一次接好。

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

Web 请求

让每个接口都有一致的行为。

  • 统一响应与异常
  • TraceId 与访问日志
  • 签名、加密与防重放

数据与权限

把数据隔离放到查询链路中。

  • MyBatis-Plus 与分页
  • 租户 SQL 隔离
  • 数据权限条件

流控与可靠性

为高频与重复请求划清边界。

  • 限流与幂等
  • 锁与调度
  • 可替换的存储实现

文件与平台

通用服务能力随项目一起成长。

  • 文件存储接口
  • 两级缓存与消息
  • 通知通道与验证码

审计与可观测性

让重要操作留下可用的线索。

  • 结构化审计事件
  • 日志与上下文传播
  • OpenAPI 元数据

功能与扩展

只带上应用真正需要的能力。

  • 声明式功能开关
  • 构建期依赖裁剪
  • Bean 与 SPI 替换
03 / LESS ASSEMBLY

少维护一套装配,多交付一个功能。

手动组装时

以下为职责示意:每个项目都要维护这些集成点。

@Configuration
class WebInfrastructure {
// ResponseBodyAdvice
// RestControllerAdvice
// TraceId filter
// Access-log filter
// Context propagation
}

接入 Coco 后

使用 coco-parent 管理版本后,引入 Starter。业务仍使用普通 Spring。

<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
</dependency>

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

04 / ARCHITECTURE

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

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

了解设计边界
  1. 01
    业务应用

    领域模型 · Controller · 事务

  2. 02
    Spring Boot Starter

    统一接入 · 自动装配

  3. 03
    Features

    按需选择的基础设施能力

  4. 04
    Foundation

    公共契约 · 上下文 · 日志

05 / ECOSYSTEM

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

COCO / 01

Framework

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

COCO / 02

Admin

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

COCO / 03

Generate

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

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

06 / GET STARTED

从一个接口开始。

  1. 01

    引入依赖

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

  2. 02

    选择能力

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

  3. 03

    启动应用

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

  4. 04

    验证响应

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

跟着指南完成第一个接口
BUILT IN THE OPEN

把重复工作留给框架,把经验带给社区。

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

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