Domain Driven Kit
面向 Java / Spring Boot 的 DDD 脚手架与工程约定工具集。它把领域模型、仓储、分层结构和架构约束沉淀成可复用的代码,让 DDD 不只停留在包名上。
能做什么
| 能力 | 说明 |
|---|---|
| 领域模型基类 | Identifier / ValueObject / Entity / AggregateRoot / DomainEvent / Specification,零框架依赖,由测试保证 |
| 通用仓储 | GenericRepository 契约与 MyBatis-Plus 实现,内置乐观锁与写入后发布领域事件 |
| 13 个 Spring Boot Starter | Web、MyBatis、领域事件、Redis、两级缓存、多数据源、链路追踪、Seata、MCP、并发控制、定时任务、读模型投影、架构守卫,配置统一在 ddk.* 前缀下 |
| AI 协作 | 生成的项目自带 AGENTS.md、CLAUDE.md 与 Claude Code Skills;架构违规报告;用例可暴露为 MCP 工具,见用 AI 编码代理开发 |
| Maven archetype | mvn archetype:generate 生成三层或四层服务,自带启动测试与架构测试 |
| 可执行的架构约束 | 分层依赖规则以 ArchUnit 规则提供,违反即构建失败 |
| 可运行示例 | ddk-example-user:一个完整的四层用例,H2 + 种子数据 + 冒烟命令 |
| 参考应用 | ddk-mall:订单、库存、支付三个上下文的模块化单体,把各个 starter 放在一起用(0.6.0 起) |
当前状态
- 可用:领域模型基类、通用仓储、全部 starter、两个 archetype、用户示例与参考应用;v0.10.0 的发布构建合计 572 个测试(不含 archetype 生成项目里的),
ddk-mybatis用 H2,涉及 Redis、RocketMQ、PostgreSQL、MySQL 的模块用 Testcontainers 启动真实的中间件做集成测试 - 质量门禁:
mvn verify同时执行 Spotless 检查与每个模块的 JaCoCo 覆盖率门槛(行 ≥ 70%、分支 ≥ 50%);CI 另外把每个模块的公开 API 与上一个发布版本比较,出现未声明的不兼容变化时构建失败 - 已发布:v0.10.0(为冻结 1.0 做准备:Maven 坐标改为
com.domaindrivenkit,自动配置统一命名,依赖收紧,发布产物带构建来源证明,升级见 升级指南)、v0.9.0(2026 年 10 月评审的可靠性修复与生产路径:投影并发收敛、后台工作的租户、事件与投影运维、商城支付对账与 secure profile)、v0.8.0(从写模型刷新、可重建的读模型,行级数据权限)、v0.7.0(事务之外发布事件、事务里面加锁当场报错,定时任务的锁不再依赖 Redis)、v0.6.0(集成事件的消费端、随事件传递的链路、参考应用ddk-mall)、v0.5.0(操作者上下文、审计字段、多租户,ArchGuard 英文修复建议)、v0.4.1(修复 ArchGuard 报告把构造器里的违规记错类的问题)、v0.4.0(中间件集成:并发控制、定时任务、接口文档里的错误约定、Flyway 迁移、ddk-test)、v0.3.0(可靠领域事件:事务性 Outbox、Kafka / RocketMQ / AMQP / JMS 投递、事件契约、幂等消费)、v0.2.0(AI 协作:代理约定、架构违规报告、MCP starter)、v0.1.0(Spring Boot 4.1 基线) - 下一步:冻结 1.0:只冻结已经验证过的核心 API 和支持矩阵,补上虚拟线程下的上下文语义。各模块验证到什么程度见 路线图的支持状态
- 安装方式:还没有发布到 Maven 中央仓库(坐标和签名已准备好),用
scripts/ddk.sh一条命令安装到本地仓库(默认装最新的发布版本,DDK_REF=v0.10.0指定版本) - 许可证:Apache License 2.0
模块地图
领域模型
com.ddk.core.domain 只做三件事:给身份一个类型、区分按值相等与按身份相等、给领域事件一个收集与发布的位置。这个包不依赖 Spring、MyBatis、Jackson 或任何框架,这条约束由测试强制执行。基类只提供机制,不强制流程,只想用 ValueObject 就只用它。详见领域模型基类。
演进路线
文档导航
| 分组 | 文档 |
|---|---|
| 上手 | 快速开始 · 分层约定与架构守卫 |
| 架构 | 四层架构 · 三层架构 |
| 核心抽象 | 领域模型基类 · 通用仓储 · 对象映射 · 异常与统一响应 |
| Starter | Web · MyBatis · Redis · Cache · DB · Tracer · Seata · ArchGuard |
| 设计与贡献 | Cache Starter 设计推演 · 开发与重构计划 |