Spring Boot下的一个DDD案例源码介绍

这是一个完整的基于Spring Boot/Spring Cloud的领域驱动设计源码案例:

ddd-by-examples/factory: The missing, complete exa

实现了CQRS命令查询CRUD责任隔离:
1. 简单的创建读取更新删除等功能通过利用CRUD框架公开。
2. 复杂命令在领域模型中表达,嵌入在六边形架构中

下图是六角形架构,领域模型位于核心之处:

上图的组件如下:
1. AppService应用程序服务 - 提供领域模型的功能入口点,应用程序服务是RESTfull端点。

2. Domain Model 领域模型 - 遵循面向对象软件建模,包含业务规则、不变性约束,计算和流程状态变化。因此,六边形架构可以尽可能简洁明了 - 将纯粹业务的基本复杂性与技术选择的偶然复杂性分开,不受技术和约定的限制。

3. 端口 - 由领域模型定义的合同,表示来自外部资源(服务,数据库或其他模型)的期望。使用IN-OUT参数声明的接口端口,如存储库实现。

4. 适配器 - 将技术(REST,数据库,外部服务等)与领域模型集成在一起。