Skip to content

Domain Driven Kit ​

Domain Driven Kit

面向 Java / Spring Boot 的 DDD 脚手架与工程约定工具集。它把领域模型、仓储、分层结构和架构约束沉淀成可复用的代码,让 DDD 不只停留在包名上。

快速开始 · GitHub · 开发计划

DDK system overview

能做什么 ​

能力说明
领域模型基类Identifier / ValueObject / Entity / AggregateRoot / DomainEvent / Specification,零框架依赖,由测试保证
通用仓储GenericRepository 契约与 MyBatis-Plus 实现,内置乐观锁与写入后发布领域事件
11 个 Spring Boot StarterWeb、MyBatis、领域事件、Redis、两级缓存、多数据源、链路追踪、Seata、MCP、并发控制、架构守卫,配置统一在 ddk.* 前缀下
AI 协作生成的项目自带 AGENTS.md、CLAUDE.md 与 Claude Code Skills;架构违规报告;用例可暴露为 MCP 工具,见用 AI 编码代理开发
Maven archetypemvn 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

模块地图 ​

DDK module map

领域模型 ​

DDK domain model base classes

com.ddk.core.domain 只做三件事:给身份一个类型、区分按值相等与按身份相等、给领域事件一个收集与发布的位置。这个包不依赖 Spring、MyBatis、Jackson 或任何框架,这条约束由测试强制执行。基类只提供机制,不强制流程,只想用 ValueObject 就只用它。详见领域模型基类。

演进路线 ​

DDK roadmap

文档导航 ​

分组文档
上手快速开始 · 分层约定与架构守卫
架构四层架构 · 三层架构
核心抽象领域模型基类 · 通用仓储 · 对象映射 · 异常与统一响应
StarterWeb · MyBatis · Redis · Cache · DB · Tracer · Seata · ArchGuard
设计与贡献Cache Starter 设计推演 · 开发与重构计划

文章以 CC BY-NC-SA 4.0 授权 · 代码片段以 MIT 授权