DDD-Mapper

应用层:Application
领域层:Domain Model Layer

为什么要用Mapper,随着技术的变化应用层的DTO会发生变化。大的业务契约不能够保证代码上线一次就成功。需要更换契约,SOA1->SOA2。契约中的长名称变成了短名称。由UserInvoiceItem 变成了  InvoiceTitle  如下



SOA 1.0版本
    [Serializable]
    public class UserInvoiceItem
    {
        public UserInvoiceItem();

        // Summary:
        //     发票ID
        public long InfoID { get; set; }
        //
        // Summary:
        //     发票标题
        public string Title { get; set; }
        //
        // Summary:
        //     Uid
        public string Uid { get; set; }
    }
}

 

SOA 2.0 版本
    // Summary:
    //     常用发票抬头信息
    [Serializable]
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [GeneratedCode("System.Xml", "4.0.30319.1009")]
    [ProtoContract]
    [XmlRoot(Namespace = "/platform/sps/InvoiceService/v1", IsNullable = false)]
    [XmlType(Namespace = "/platform/sps/InvoiceService/v1")]
    public class InvoiceTitle
    {
        public InvoiceTitle();

        // Summary:
        //     常用发票抬头ID
        [ProtoMember(2)]
        public long inId { get; set; }
        //
        // Summary:
        //     常用发票抬头
        [ProtoMember(3)]
        public string tle { get; set; }
        //
        // Summary:
        //     用户ID
        [ProtoMember(1)]
        public string uid { get; set; }
    }

UserInvoice.Items.Add(Mapper.Map<UserInvoice,UserInvoiceItem>(InvoiceItem));

UserInvoice.Items.Add(Mapper.Map<UserInvoice,InvoiceTitle>(InvoiceItem));

时间: 2024-10-06 18:30:49

DDD-Mapper的相关文章

基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://gith

拨开迷雾,找回自我:DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?

写在前面 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领域模型的核心是实现业务逻辑,也就是说,在应对具体的业务场景的时候,实现业务逻辑是领域驱动设计最重要的一环,在写这篇博文之前,先总结下之前关于 DDD(领域驱动设计)的三篇博文: 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践:伪领域驱动设计,只是用 .NET 实现的一个“空壳”,仅此而已. 一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模

Spring Boot集成MyBatis实现通用Mapper

前言 MyBatis关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.不管是DDD(Domain Driven Design,领域驱动建模)还是分层架构的风

【DDD】领域驱动设计实践 —— 框架实现

目录 1. 框架实现图 2. 框架详述 3. 模块结构 正文 本文主要介绍了基于SpringMVC+mybatis对DDD思想的落地实现框架.本文为[DDD]系列文章中的其中一篇,其他内容可参考:使用领域驱动设计思想实现业务系统. 回到顶部 1. 框架实现图 该框架实现基本和DDD的指导思想契合,主要分为四层,且将关注点放在了domain层.下面将逐层介绍各个组件的职责. 回到顶部 2. 框架详述 User Interface层 门面层,对外以各种协议提供服务,该层需要明确定义支持的服务协议.契

使用MyBatis Generator自动生成实体、mapper和dao层

通过MyBatis Generator可以自动生成实体.mapper和dao层,记录一下怎么用的. 主要步骤: 关于mybatis从数据库反向生成实体.DAO.mapper: 参考文章:http://www.cnblogs.com/wangkeai/p/6934683.html第一种方式:main方法运行(推荐) 1.在pom.xml中加入插件依赖: 2.写mbgConfiguration.xml文件,jdbc.properties文件 3.写/SSM/src/main/java/main/Ge

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

mybatis中的mapper接口文件以及example类的实例函数以及详解

##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列. example.setDistinct(false)//去除重复,boolean型,true为选择不重复的记录. Criteria criteria = new Example().createCriteria(); is null;is not null; equal to(value);not equ

通用mapper的使用

通用mapper的使用 导入依赖 <dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>2.3.4</version> </dependency> 配置plugins <plugin interceptor="com.github.abel533.mapperhelp

Linux下图形化调试工具: kdbg, ddd

在linux下调试确实是个很麻烦的事, 用gdb调试不怎么方便, 没有在windows下用vs爽, 主要原因还是因为gdb是用命令行形式, 其实在linux下也有一些基于gdb的图形化调试工具. 1. kdbg ubuntu下 直接 sudo apt-get install kdbg 即可安装. 若启动后出现 MNG error 11: Function is invalid at this point; chunk MHDR; subcode 0:0 错误, 那么就删除 /usr/share/

我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践

写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛:第一次看你,半弯新湖,鱼跃翠堤:第一次念你,燕飞巢冷,释怀记忆:第一次梦你,云翔海岛,轮渡迤逦:第一次认你,怨江别续,草桥知己:第一次怕你,命悬一线,遗憾禁忌:第一次悟你,千年菩提,生死一起. 人生有很多的第一次:小时候第一次牙牙学语.第一次学蹒跚学步...长大后第一次上课.第一次逃课.第一次骑自行车.第一次懂事.第一次和喜