基于六边形架构的思想,使用 Java Spring Boot 框架,给出一个简化版的订单管理系统示例代码。示例中会体现:领域层(核心业务逻辑)、端口(接口)、适配器(输入、输出适配器)。
src/main/java/com/halo26812/ddd/v1/
├── DDDV1Application.java # Spring Boot启动类
├── adapters # 适配器层(ACL)
│ ├── inbound # 输入适配器
│ │ └── PersonController.java # REST API控制器
│ └── outbound # 输出适配器
│ └── persistence # 持久化相关
│ ├── PersonEntity.java # 数据库实体
│ └── PersonRepositoryImpl.java # 仓储实现
├── domain # 领域层
│ ├── model # 领域模型
│ │ ├── Person.java # Person聚合根
│ │ ├── PersonId.java # Person标识符值对象
│ │ └── Sex.java # 性别枚举值对象
│ ├── ports # 端口定义
│ │ ├── in # 输入端口(供应用层调用)
│ │ │ ├── PersonRecord.java # REST请求记录类
│ │ │ ├── PersonRestApi.java # REST API接口
│ │ │ └── PersonService.java # 领域服务接口
│ │ └── out # 输出端口(供基础设施实现)
│ │ └── PersonRepository.java # 仓储接口
│ └── service # 领域服务实现
│ └── PersonServiceImpl.java # Person领域服务实现
└── resources
├── application.properties # 应用配置文件
└── log4j2.xml # 日志配置文件
架构层次说明
应用启动层: DDDV1Application作为Spring Boot启动类
用户接口层: adapters.inbound包下的PersonController处理HTTP请求
领域层: 包含核心业务逻辑,分为model(模型)、ports(端口)和服务实现
基础设施层: adapters.outbound包负责数据持久化等技术实现