1、将当前项目功能结构重构为下面的结构,要求必须保留原来所有的代码
|--ddd4j-boot
|----ddd4j-boot-bom #BOM依赖管理
|----ddd4j-boot-dependencies #公共依赖,便于依赖组件版本控制
|----ddd4j-boot-core #核心模块,基础API、公共对象(BaseController、BaseService、BaseMapper等)、异常对象
|----ddd4j-boot-cmpt #组件模块父模块
|------ddd4j-boot-cmpt-crypto #加解密组件
|------ddd4j-boot-cmpt-datascope #数据权限组件
|------ddd4j-boot-cmpt-license #License组件
|------ddd4j-boot-cmpt-logs #日志组件
|------ddd4j-boot-cmpt-pf4j #PF4J插件组件
|------ddd4j-boot-cmpt-cola #COLA组件
|------ddd4j-boot-cmpt-satoken #SaToken组件
|------ddd4j-boot-cmpt-jackson
|------ddd4j-boot-cmpt-webmvc
|------ddd4j-boot-cmpt-webflux
|------ddd4j-boot-cmpt-kafka
|------ddd4j-boot-cmpt-external
|----ddd4j-boot-parent #子模块的父级工程,定义Maven配置
|----ddd4j-boot-samples #具体业务服务
|--------ddd4j-boot-sample-druid #集成Druid数据源示例
|--------ddd4j-boot-sample-druid-activemq #集成Druid数据源 + ActiveMQ 示例
|--------ddd4j-boot-sample-druid-amqp #集成Druid数据源 + RabbitMQ 示例
|--------ddd4j-boot-sample-druid-rocketmq #集成Druid数据源 + RocketMQ 示例
|--------ddd4j-boot-sample-druid-war #集成Druid数据源打War包示例
|--------ddd4j-boot-sample-hikaricp #集成 Hikaricp数据源示例
|--------ddd4j-boot-sample-hikaricp-activemq #集成 Hikaricp数据源 + ActiveMQ 示例
|--------ddd4j-boot-sample-hikaricp-amqp #集成 Hikaricp数据源 + RabbitMQ 示例
|--------ddd4j-boot-sample-hikaricp-rocketmq #集成 Hikaricp数据源 + RocketMQ 示例
|--------ddd4j-boot-sample-hikaricp-war #集成 Hikaricp数据源打War包示例
|--------ddd4j-boot-sample-r2dbc-webflux #集成 R2dbc + WebFlux 示例
|--------ddd4j-boot-sample-xxx 更多其他模块
2、注意 jeebiz-boot-api 对应着 ddd4j-boot-core,其他重构都是有着对应关系,没有的模块,按规则自己添加
3、重构完成后,需要从git历史记录拉去文件,与重构后的目录和文件,使用 md5 一一比对,不能少一个文件。
4、对比后,在进行2次对比检查
再次进行验证,必须从 git 历史记录与重构后的目录和文件一一对比,确定无误后,可清理旧的目录
进行代码编译,修复编译发现的问题,可能比较多的是pom配置错误导致的编译失败
根据最新目录结构,对根目录的 README.md 进行修正和完善
1、对非示例项目的 package 进行调整
- 从 io.hiwepy.boot.api 调整为 io.ddd4j.boot.core
- 其他的 io.hiwepy.boot 调整为 io.ddd4j.boot
- io.ddd4j.boot.autoconfigure 目录调整为与工程 ddd4j-boot-cmpt-akka 对应,如:io.ddd4j.boot.cmpt.akka
2、调整完整后,进行代码编译,修复编译发现的问题
3、检查全部文件,确保不在有 jeebiz、tianyin 等字样
4、从git历史记录,与调整后的文件内容进行对比,确保不能缺失一个文件
5、再次从git历史记录,与调整后的文件内容进行对比,确保不能缺失一个文件,只对比主要内容,不对比引入和路径
6、清理不在使用的旧目录,比如 io.hiwepy
1、对所有的示例项目进行 DDD重构
2、可参考文档 https://blog.csdn.net/dividividiv/article/details/151934659 和 https://cloud.tencent.com/developer/article/2554516 内容,把 目前十分简单的Demo 改为 订单操作的示例
3、采用模块化设计,按DDD分层思想组织代码结构,期望调整后的结构:
├── src/main/java/com/example/order/
│ ├── application/ // 应用层
│ │ ├── command/ // 命令对象
│ │ ├── dto/ // 数据传输对象
│ │ ├── service/ // 应用服务
│ │ └── mapper/ // DTO与领域对象映射
│ ├── domain/ // 领域层
│ │ ├── model/ // 领域模型
│ │ │ ├── entity/ // 实体
│ │ │ ├── vo/ // 值对象
│ │ │ └── aggregate/ // 聚合根
│ │ ├── repository/ // 仓储接口
│ │ └── service/ // 领域服务
│ ├── infrastructure/ // 基础设施层
│ │ ├── persistence/ // 持久化实现
│ │ ├── messaging/ // 消息组件
│ │ └── config/ // 配置类
│ └── interfaces/ // 用户接口层
│ ├── rest/ // REST接口
│ └── facade/ // 外部服务接口
└── src/main/resources/
├── application.yml // 应用配置
└── db/migration/ // 数据库迁移脚本
... 其他目录
4、除了给出的 order 示例,把原有的demo 示例,按 ddd 结构进行整理
5、给接口的入参对象,返回对象,加上 swagger3注释,同时接口也增加注释
6、移除示例代码中,多余的目录和文件

作者:Jeebiz 创建时间:2025-12-03 09:52
最后编辑:Jeebiz 更新时间:2025-12-07 17:26
最后编辑:Jeebiz 更新时间:2025-12-07 17:26