微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人。

该工具类主要是对dozer进行了封装,使用过程代码量极少,废话少说,贴代码了

import java.util.ArrayList;
import java.util.List;

import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;

public class DtoEntityUtil {
    
    static Mapper mapper = new DozerBeanMapper();

public static <D,E> E trans(D t,Class<E> clazz){
        if(t == null)
            return null;
        return mapper.map(t, clazz);
    }
    
    public static <D,E> List<E> trans(D[] ts,Class<E> clazz){        
        List<E> es = new ArrayList<E>();
        if(ts == null)
            return es;
        
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        
        return es;
    }
    
    
    public static <D,E> List<E> trans(List<D> ts,Class<E> clazz){
        List<E> es = new ArrayList<E>();
        if(ts == null )
            return es;
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        return es;
    }
    
}

举例:

//下面两段代码是将entity转换成dto;分别是单个对象转换和集合对象转换;一般用于向consumer提供数据

//WorkeRecord是entity,从数据库中获取的对象

DtoEntityUtil.trans(workeRecord, WorkerRecordDTO.class);

//es是List集合,里面的对象是WorkeRecord的实例

List<WorkerRecordDTO> ds = (List<WorkerRecordDTO>)DtoEntityUtil.trans(es, WorkerRecordDTO.class);

//================华丽分隔符==================

//下面例子是dto转entity,一般用于向provider传入对象

DtoEntityUtil.trans(menuDto, Menu.class);//将mentDto转换成mentEntity

List<User> users = DtoEntityUtil.trans(ts, User.class);//将dto集合ts转换成entityList users

代码量是不是很少~~~

转载于:https://my.oschina.net/godson2003/blog/3102151

微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人...相关推荐

  1. 微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人

    微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人. 该工具类主要是对dozer进行了封装,使用过程代码量极少,废话少说,贴代码了 import j ...

  2. redis 什么是冷数据_阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂

    前言: 金九银十刚刚过去了,不知道很多小伙伴都拿到自己心仪的offer没有,我这边也收到了一个粉丝投来的消息,说看到阿里的面试真题之后人都是懵的,发现自己一窍不通,下面给大家分享我这个粉丝的经历,以及 ...

  3. 联发科heli p90_“如果您是Java开发人员并且正在编写微服务,那么Helidon是一个不错的选择”

    联发科heli p90 " Helidon仅设计用于微服务" 尽管Oracle最近开放了 Helidon(一组Java库)的开源资源 ,但是该项目本身并不新鲜,正如Helidon项 ...

  4. SpringCloud(第 016 篇)电影微服务,定制Feign,一个Feign功能禁用Hystrix,另一个Feign功能启用Hystrix...

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 016 篇)电影微服务,定制Feign,一个Feign功能禁用Hystrix,另一个Feign功能 ...

  5. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  6. 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil

    基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...

  7. java dto 转换_json dto javabean转换工具类

    [java]代码库package com.slb.webservice.servlet; import java.io.IOException; import java.util.ArrayList; ...

  8. 分享一个发送http请求的工具类

    分享一个发送http请求的工具类 maven依赖只需要导入一个 <dependencies><dependency><groupId>commons-httpcli ...

  9. 微服务设计简单实践---从一个简单需求学习微服务思想

    从一个案例来看,如何在做架构设计时利用微服务的思想来帮我们解决问题. 背景介绍 公司对产品服务的管理目前还停留在物理机的那种理念,虽然阿里云.AWS.腾讯云.OpenStack等云平台用的不亦乐乎,但 ...

最新文章

  1. 5 用python进行OpenCV实战之图像变换2(旋转)
  2. 关于STM32的延时问题
  3. Rise of Shadows 闰年leap year-无法线性筛
  4. GDCM:gdcm::TransferSyntax的测试程序
  5. sharepoint简单说明
  6. 51Nod - 1183 编辑距离
  7. c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理
  8. Dubbo关于timeout等相关配置的优先级
  9. spring_redis整合
  10. Android Sqlite数据库操作
  11. mysql 元数据修改_MySQL 元数据
  12. 海量数据插入数据库的快速方案
  13. DEA for mac 热部署
  14. BarTender数据批量打印软件的入门操作
  15. 超级搜索术 总结篇2
  16. 基于Java毕业设计高考志愿智能辅助填报系统源码+系统+mysql+lw文档+部署软件
  17. 爬虫(二) 豆瓣音乐评论爬虫 文末附完整代码
  18. Python爬取《明日之子》(腾讯视频)评论和弹幕,看看大家都在吐槽什么
  19. 销售小姐姐再也不用担心写错合同编号了
  20. 如何实现接口统一入口_网易考拉Android App如何实现统一弹框

热门文章

  1. 陈莉君: 台湾開源人年会之Linux内核之旅(附演讲PPT及讲解)
  2. HUST 1584 摆放餐桌(计算几何)
  3. “数字聚变 驱动智造” 网络研讨会期待您的参与
  4. 数据分析——数据处理
  5. iPhone锁屏字体
  6. 计算机三级网络技术第七章(第一轮)
  7. 【Linux】Linux多线程
  8. c语言time_t转oletime,CTime、COleDateTime和CString之间的相互转化 | 求索阁
  9. “技术总监面试,凭啥不问你技术细节?”
  10. 精神心理科医生:抑郁症正在好转的5种表现