对于modelMapper来说,主要实现的是对象与对象的赋值,在这微服务里的数据传输对象中用的比较多,DTO这个对象是从业务模型抽象出来的,满足某一种业务,它与数据持久化模型没有关系,而如果我们把数据表模型取出后,以DTO返回给使用端时,就需要一种赋值机制,这就是modelMapper需要做的事。

在目前开发过程中,由于使用了lombok插件,使得我们减少了很多重复的代码,它以注解的形式体现在代码上,即@getter表示对外公司读方法,@setter对外公开写方法,而后者在设计时一般不对外公开,为对象的赋值一般通过@Builder来实现,但这对于modelMapper是一件坏事 ,它必须要求你公开@setter注解,才可以为你赋值,这也是可以想像的,modelMapper的机制应该就是说取所有字段 ,然后使用自己的setter方法为它赋值。

注意地址

  1. 必须公开@setter注解
  2. DTO对象不能继承原来的模型,应该新建一个单纯的实体,因为注解是可以从父类集成下来的
@Builder(toBuilder = true)
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UserDto {private String name;
}

下面是数据模型

@Builder(toBuilder = true)
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {private String name;private String email;@MinMoney(message = "金额不能小于0.")@MaxMoney(value = 10, message = "金额不能大于10.")private Money price;}

下面是使用方法,同时可以使用BeanUtils类的方法也可以实现。

modelMapper方法

  ModelMapper modelMapper = new ModelMapper();        userDto = modelMapper.map(userinfo, UserDto.class); 

BeanUtils方法

 UserInfo userinfo= UserInfo.builder().name("zzl").build();UserDto userDto=new UserDto();BeanUtils.copyProperties(userinfo,userDto);

感谢阅读!

java~modelMapper需要注意的几点相关推荐

  1. ModelMapper 中高级使用 java

    ModelMapper 是一个java对象自动映射的第三方架包,用起来很方便,配合阿里的frstjson可以极大简化后台代码. 但是ModelMapper 中文使用说明很少,官网http://mode ...

  2. java modelmapper_java - 使用ModelMapper映射抽象类型的字段 - SO中文参考 - www.soinside.com...

    我有以下课堂知识层次:public abstract class Base { protected Boolean baseBoolean; } public class A extends Base ...

  3. 业务代码的救星——Java对象转换框架MapStruct

    介绍 在业务项目的开发中,我们经常需要将Java对象进行转换,比如从外部HSF服务得到的对象转换为本域的业务对象domain object,将domain object转为数据持久层的data obj ...

  4. java map 结构体_业务代码的救星——Java 对象转换框架 MapStruct 妙用

    简介 在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domain object,将 domain object 转为数据持久层的 dat ...

  5. github上可供新手阅读和玩耍的java项目有哪些??

    扫垃圾 ,Java 爱好者, 前沿技术思考者 刘巍然-学酥 等 217 人赞同 一个聊天程序范例: tinystruct2.0/smalltalk.java at master · m0ver/tin ...

  6. java的对象对象映射_Java对象到对象映射器

    java的对象对象映射 我在该项目上使用了Dozer一段时间. 但是,最近我遇到了一个非常有趣的错误,这促使我环顾四周,并尝试使用其他"对象到对象"映射器. 这是我找到的工具列表: ...

  7. Java对象到对象映射器

    我在该项目上使用了Dozer一段时间. 但是,最近我遇到了一个非常有趣的错误,它促使我环顾四周,并尝试使用其他"对象到对象"映射器. 这是我找到的工具列表: 推土机:推土机是Jav ...

  8. 定义一个dto对象_业务代码的救星——Java 对象转换框架 MapStruct 妙用

    在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domainobject,将 domainobject 转为数据持久层的 dataobje ...

  9. Java 开发常用资源

    微软推出 Microsoft Build of OpenJDK :https://docs.microsoft.com/zh-cn/java/ Awesome Java A curated list ...

  10. 读取Java源文件中字段的注释当做Swagger的字段描述

    本文作者:suxingrui 本文链接:https://blog.csdn.net/suxingrui/article/details/103788530 版权声明:本文为原创文章,转载请注明出处. ...

最新文章

  1. 新手探索NLP(二)
  2. openfalcon 组件监控_运维监控系统之Open-Falcon
  3. ISC2015听会小计
  4. monty python喜剧-看美剧学托福:最受美国人喜欢的100部美剧
  5. 【控制】蚁群算法(ACO,Ant Colony Optimization)及 Matlab 实现
  6. C++ template类模板实现栈 pop push
  7. jax-rs jax-ws_极端懒惰:使用Spring Boot开发JAX-RS服务
  8. MFC关键技术-永久保存机制
  9. 父亲节,来认识一下这几位“爸爸”
  10. Android Realm(数据库)
  11. IIS架设PHP网站
  12. 液晶屏的接口信号RGB_TTL、LVDS、MIPI
  13. 基于单片机的触屏电机控制系统的设计
  14. 如何画一条0.5px的边(细线)
  15. 腾讯在乳腺癌影像AI诊断方向的探索
  16. 【无人机】【2012.09】将无人驾驶飞机系统融入城市环境中的现代警务研究
  17. eclipse关于图片上传,图片不显示,tomcat路径问题
  18. Linux下动态链接库的查找问题
  19. C++结构体 结构体定义和使用、结构体数组、结构体指针、结构体嵌套结构体、结构体做函数参数
  20. android 蓝牙 编程,Android编程之蓝牙测试实例

热门文章

  1. Python使用xpath爬取51job
  2. 10月27号、28号、29号、30四天PC端云音乐项目总结
  3. 查看vs支持的c#语言版本/查看.NetCore版本/更改c#语言版本
  4. XAMPP端口更改后 httpd-vhosts.conf 文件配置
  5. iview render设置属性_iView 发布 3.4.0 版本,代号 BestLuck
  6. error: ‘PRIO_PROCESS’ undeclared
  7. 时空不平坦,能量不守恒。大爆炸时粒子凭空产生的情形
  8. LanguageTool精简的两个思路
  9. 全网首发:以字型为例,一维表示的二维数组矩阵,以易理解的方式旋转90、-90
  10. 中国税负68%,世界排名12