java映射_开发好物推荐14之java实体快速DO 与DTO映射转换

前言

按标准化领域驱动设计的规范,java项目中Bean,分为 PO(Persistent Object),DO(Domain Object),DTO(Data Transfer Object),VO(View Object)。但是项目中的同事没有遵循这个规范,代码都是把PO直接返还给视图层,这样有2个弊端:

1 返回了许多多余字段,减少了网络传输数据的速率。

2 引起前端人员不满,他们觉得字段多他们自己调试起来也很麻烦,忍不住吐槽。

于是我就担负起了解决这个问题的重任,我在项目中加了一层DTO,精简没必要传给试图层的数据,但是我又不想用set,get这样低级的方法进行转换,也不想用Spring的BeanUtils类进行转换,因为此工具运用反射实现,调用次数多的时候,会有性能问题,于是我在度娘前苦苦求了几天无眠,俗话说念念不忘必有回响:终于找到了一个更好的解决方案,特地分享给大家。

推荐理由

  1. 开源jar包,使用方便简单
  2. 复制对象时字段类型不一致可以转换
  3. 复制对象时字段名称不一致可以转换
  4. 集合类的复制可以轻松实现
  5. 不存在性能问题

实践

1 引入jar包

    org.mapstruct        mapstruct        1.4.1.Final

2 引入编译插件

org.apache.maven.plugins            maven-compiler-plugin            3.5.11.81.8org.mapstruct                        mapstruct-processor                        1.4.0.Final

3 创建类 Goods ,Shop, GoodsDTO

893f6567dbb025b990141f363ddab1ec.png
057a6caed4445134525ab5ba804a493c.png
ff4e12a24df717622be19314608d96e2.png

4 使用转换

67b946c0030b77036596c2e4a33c5962.png

5 执行maven编译,生成实现类

dd954f8d258dd2fe6c089ec7257b19ec.png

测试

7e9566209e20ab75d4fc535b05477336.png

总结: 原理是在编译时,利用插件生成实现类。

致谢

感谢看文章的小伙伴,如果有疑问欢迎交流,如果能加下关注就更好了,你们的关注是我持续更新的动力,让我们用好工具,减少打工人的工作时间,有更多的时间陪伴家人和思考这个世界。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值