# mapstruct-demo **Repository Path**: zhouqiao6430/mapstruct-demo ## Basic Information - **Project Name**: mapstruct-demo - **Description**: 制定DTO,DO,PO标准并使用MapStruct实现DTO转DO,DO转PO的示例 - **Primary Language**: Java - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-09-24 - **Last Updated**: 2021-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 介绍 mapstruct-demo,是基于DDD设计的do,dto,dp,po之间转化工具类 #### DDD软件架构工程模块说明 1.application(应用层):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理, 如果需要的话,发送消息通知等。层次开放,应用层可以绕过领域层,直接访问基础实施层。 2.domain(领域服务层):主要封装核心业务逻辑,并通过领域服务(Domain service)和 领域对象(Domain Entity)的方法对App层提供业务实体和业务逻辑运算。领域是应用 的核心,只能依赖types层,不能依赖其他任何层。 3.facade(API接口层):微服务对外接口层,只包含接口、方法和接口对象。 4.infracl(防腐层):主要是基础设施层的接口定义,例如仓储接口,短信接口等。 接口对象可封装值对象或者领域对象。 5.infrastructure(基础设施层):向它层提供通用技术能力,主要负责技术细节问题处理, 比如数据库的CRUD,搜索引擎,文件系统等。 6.start(应用入口):存放各类配置文件,与应用启动入口类。 7.types(值对象层):用于存放对外暴露的dp对象。 8.web(WEB服务层):包含controller等相关代码。 #### 工程模块依赖关系说明 1.web层:依赖application层、不被任何层依赖。(在后管单元与业务流转单元) 2.domain层:依赖types层、被application层,infracl层,infrastructure层应用。(新建层) 3.facade层:不依赖任何层、被application层依赖。(在交易编排单元) 4.application层:依赖domain层,facade层,infracl层,types层、被web依赖。(原系统的子工程impl的impl包) 5.types层:不依赖任何层、被domain层,application层,infracl层, infrastructure层依赖。(新建层) 6.infracl层:依赖domain层,types层、被infrastructure层,application层依赖。(原系统impl子工程的dao包) 7.infrastructure层:依赖infracl层,types层,domain层、不被任何层依赖。(原系统的子工程impl的impl包) 8.start层:依赖application层、不被任何层依赖。(新建层,放启动类) #### mapstruct-demo使用说明 1. domain里定义了do对象为car 2. types里定义了do对象的值对象cartye 3. infracl里定义了do对象转dto对象cardto, 以及mapstruct工具的mapper映射接口carmapper。 4. domain里测试,测试工具转换以及ddd模式。