# ddd-framework **Repository Path**: itunion/ddd-framework ## Basic Information - **Project Name**: ddd-framework - **Description**: 基于DDD(领域驱动设计)的轻量级快速开发框架,致力于企业技术架构的可沉淀和可传承,解决复杂业务场景的扩展问题,目前已在核心业务领取进行落地。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://mp.weixin.qq.com/s/tsqs2QspLCQxZEpAAOWfUg - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 4 - **Created**: 2022-08-18 - **Last Updated**: 2025-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

ddd-framework

基于领域驱动设计(DDD)的微服务快速开发框架.
Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status Coverage Status
[官网](https://100boot.cn/) | [公众号](https://mp.weixin.qq.com/s/tsqs2QspLCQxZEpAAOWfUg) | [小程序商城](https://gitee.com/itunion/nissi-mall-wechat-applet)
#### 帮忙右上角点下 ⭐ Star ,感谢您的支持。 ### 项目说明 *** 基于DDD(领域驱动设计)的轻量级快速开发框架,致力于企业技术架构的可沉淀和可传承,解决复杂业务场景的扩展问题,目前已在公司核心业务领域进行落地。 ### 项目结构 *** ``` ./itunion-ddd-common // 基础组件集合 ├── itunion-ddd-common-base // 通用类库 ├── itunion-ddd-common-exception // 统一异常异常 ├── itunion-ddd-common-mybatis // mybatis--plus ├── itunion-ddd-common-redis // redis缓存 ├── itunion-ddd-common-swagger // api可视化 └── pom.xml .itunion-ddd-service // 核心服务 ├── itunion-ddd-web // WEB端-接口层 ├── itunion-ddd-application // 应用层 ├── itunion-ddd-domain // 领域层 ├── itunion-ddd-infra // 基础服务层 └── pom.xml ``` ### 搭建目的 *** * 解决开发过程中后期维护逻辑混乱和维护成本高的痛点。 * 从MVC框架过度到更适合复杂业务的开发框架。 * 推动DDD思想在团队中萌芽,寻找更优开发思路。 ### 必须坚持原则 *** * 领域驱动(DDD)设计为基础,按照分层作为默认开发规范。 ### 强制分层原因 *** * 各个层次中的编号不影响其上层和下层。 * 层次分明方便mock和查找问题,各个层次间异常处理机制可控。 * 高内聚低耦合,提高各个层次间的复用性,减少模块间接口的复杂程度。 ### DDD分层架构 *** ![DDD分层架构](doc/images/DDD分层架构.png) 分层说明: * 适配层(Web):负责对前端展示的路由和适配,可以理解为MVC的Controller。 * 业务应用层(Application):负责获取输入、组装上下文、参数校验和调用领域层做业务处理。这一层是开放的,可以绕过领域层,直接访问基础设施层。 * 领域层(Domain):或称为模型层,封装了核心业务逻辑,通过领域服务和领域对象的方法对应用层提供业务实体和业务逻辑计算。 * 基础设施层(Infrastructure):负责技术细节问题的处理,比如对数据库的CRUD、消息队列、Redis、搜索引擎等。领域的防腐层也放在这里,外部依赖需要通过转义处理才能被领域层和应用层调用。 *PS:在设计和开发时,不要将本该放在领域层的业务逻辑放到应用层中实现,因为庞大的应用层会使领域模型失焦,时间一长你的服务就会演化为传统的三层架构,业务逻辑会变得混乱。* ### 部署 *** #### 前期准备 * 拉取Master分支代码 * 安装必要环境:jdk1.8+、mysql5.7+、redis等 * 启动 itunion-ddd-web 项目 #### 访问地址 http://127.0.0.1:8080/itunion-ddd-web/api ### 技术交流 ***

欢迎入扫码关注公众号或扫码加我好友拉你进大群 ,来和DDD实践者们一起探讨DDD落地方案吧。
如果你解决了某些bug,或者新增了一些功能,欢迎 [贡献代码](https://gitee.com/itunion/ddd-framework/pulls),感激不尽~