Domain Driven Kit
面向 Java / Spring Boot 的 DDD 脚手架与工程约定工具集。它把领域模型、仓储、分层结构和架构约束沉淀成可复用的代码,让 DDD 不只停留在包名上。
能做什么
| 能力 | 说明 |
|---|---|
| 领域模型基类 | Identifier / ValueObject / Entity / AggregateRoot / DomainEvent / Specification,零框架依赖,由测试保证 |
| 通用仓储 | GenericRepository 契约与 MyBatis-Plus 实现,内置乐观锁与写入后发布领域事件 |
| 11 个 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 + 种子数据 + 冒烟命令 |
当前状态
- 可用:领域模型基类、通用仓储、全部 starter、两个 archetype、用户示例;合计 233 个测试,
ddk-mybatis用 H2、ddk-cache-starter用 Testcontainers 启动的真实 Redis 做集成测试 - 质量门禁:
mvn verify同时执行 Spotless 检查与每个模块的 JaCoCo 覆盖率门槛(行 ≥ 70%、分支 ≥ 50%) - 已发布:v0.3.0(可靠领域事件:事务性 Outbox、Kafka / RocketMQ / AMQP / JMS 投递、事件契约、幂等消费)、v0.2.0(AI 协作:代理约定、架构违规报告、MCP starter)、v0.1.0(Spring Boot 4.1 基线)
- 下一步:v0.4 中间件与类库集成(并发控制、定时任务、数据库迁移、API 文档),详见 路线图
- 安装方式:暂不发布到 Maven 中央仓库,用
scripts/ddk.sh一条命令安装到本地仓库(DDK_REF=v0.3.0指定发布版本) - 许可证:Apache License 2.0
模块地图
领域模型
com.ddk.core.domain 只做三件事:给身份一个类型、区分按值相等与按身份相等、给领域事件一个收集与发布的位置。这个包不依赖 Spring、MyBatis、Jackson 或任何框架,这条约束由测试强制执行。基类只提供机制,不强制流程,只想用 ValueObject 就只用它。详见领域模型基类。
演进路线
文档导航
| 分组 | 文档 |
|---|---|
| 上手 | 快速开始 · 分层约定与架构守卫 |
| 架构 | 四层架构 · 三层架构 |
| 核心抽象 | 领域模型基类 · 通用仓储 · 对象映射 · 异常与统一响应 |
| Starter | Web · MyBatis · Redis · Cache · DB · Tracer · Seata · ArchGuard |
| 设计与贡献 | Cache Starter 设计推演 · 开发与重构计划 |