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 实现,内置乐观锁与写入后发布领域事件
13 个 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 + 种子数据 + 冒烟命令
参考应用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

模块地图 ​

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 授权