java~modelMapper需要注意的几点
对于modelMapper来说,主要实现的是对象与对象的赋值,在这微服务里的数据传输对象中用的比较多,DTO这个对象是从业务模型抽象出来的,满足某一种业务,它与数据持久化模型没有关系,而如果我们把数据表模型取出后,以DTO返回给使用端时,就需要一种赋值机制,这就是modelMapper需要做的事。
在目前开发过程中,由于使用了lombok插件,使得我们减少了很多重复的代码,它以注解的形式体现在代码上,即@getter表示对外公司读方法,@setter对外公开写方法,而后者在设计时一般不对外公开,为对象的赋值一般通过@Builder来实现,但这对于modelMapper是一件坏事 ,它必须要求你公开@setter注解,才可以为你赋值,这也是可以想像的,modelMapper的机制应该就是说取所有字段 ,然后使用自己的setter方法为它赋值。
注意地址:
- 必须公开@setter注解
- 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需要注意的几点相关推荐
- ModelMapper 中高级使用 java
ModelMapper 是一个java对象自动映射的第三方架包,用起来很方便,配合阿里的frstjson可以极大简化后台代码. 但是ModelMapper 中文使用说明很少,官网http://mode ...
- java modelmapper_java - 使用ModelMapper映射抽象类型的字段 - SO中文参考 - www.soinside.com...
我有以下课堂知识层次:public abstract class Base { protected Boolean baseBoolean; } public class A extends Base ...
- 业务代码的救星——Java对象转换框架MapStruct
介绍 在业务项目的开发中,我们经常需要将Java对象进行转换,比如从外部HSF服务得到的对象转换为本域的业务对象domain object,将domain object转为数据持久层的data obj ...
- java map 结构体_业务代码的救星——Java 对象转换框架 MapStruct 妙用
简介 在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domain object,将 domain object 转为数据持久层的 dat ...
- github上可供新手阅读和玩耍的java项目有哪些??
扫垃圾 ,Java 爱好者, 前沿技术思考者 刘巍然-学酥 等 217 人赞同 一个聊天程序范例: tinystruct2.0/smalltalk.java at master · m0ver/tin ...
- java的对象对象映射_Java对象到对象映射器
java的对象对象映射 我在该项目上使用了Dozer一段时间. 但是,最近我遇到了一个非常有趣的错误,这促使我环顾四周,并尝试使用其他"对象到对象"映射器. 这是我找到的工具列表: ...
- Java对象到对象映射器
我在该项目上使用了Dozer一段时间. 但是,最近我遇到了一个非常有趣的错误,它促使我环顾四周,并尝试使用其他"对象到对象"映射器. 这是我找到的工具列表: 推土机:推土机是Jav ...
- 定义一个dto对象_业务代码的救星——Java 对象转换框架 MapStruct 妙用
在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domainobject,将 domainobject 转为数据持久层的 dataobje ...
- Java 开发常用资源
微软推出 Microsoft Build of OpenJDK :https://docs.microsoft.com/zh-cn/java/ Awesome Java A curated list ...
- 读取Java源文件中字段的注释当做Swagger的字段描述
本文作者:suxingrui 本文链接:https://blog.csdn.net/suxingrui/article/details/103788530 版权声明:本文为原创文章,转载请注明出处. ...
最新文章
- 新手探索NLP(二)
- openfalcon 组件监控_运维监控系统之Open-Falcon
- ISC2015听会小计
- monty python喜剧-看美剧学托福:最受美国人喜欢的100部美剧
- 【控制】蚁群算法(ACO,Ant Colony Optimization)及 Matlab 实现
- C++ template类模板实现栈 pop push
- jax-rs jax-ws_极端懒惰:使用Spring Boot开发JAX-RS服务
- MFC关键技术-永久保存机制
- 父亲节,来认识一下这几位“爸爸”
- Android Realm(数据库)
- IIS架设PHP网站
- 液晶屏的接口信号RGB_TTL、LVDS、MIPI
- 基于单片机的触屏电机控制系统的设计
- 如何画一条0.5px的边(细线)
- 腾讯在乳腺癌影像AI诊断方向的探索
- 【无人机】【2012.09】将无人驾驶飞机系统融入城市环境中的现代警务研究
- eclipse关于图片上传,图片不显示,tomcat路径问题
- Linux下动态链接库的查找问题
- C++结构体 结构体定义和使用、结构体数组、结构体指针、结构体嵌套结构体、结构体做函数参数
- android 蓝牙 编程,Android编程之蓝牙测试实例
热门文章
- Python使用xpath爬取51job
- 10月27号、28号、29号、30四天PC端云音乐项目总结
- 查看vs支持的c#语言版本/查看.NetCore版本/更改c#语言版本
- XAMPP端口更改后 httpd-vhosts.conf 文件配置
- iview render设置属性_iView 发布 3.4.0 版本,代号 BestLuck
- error: ‘PRIO_PROCESS’ undeclared
- 时空不平坦,能量不守恒。大爆炸时粒子凭空产生的情形
- LanguageTool精简的两个思路
- 全网首发:以字型为例,一维表示的二维数组矩阵,以易理解的方式旋转90、-90
- 中国税负68%,世界排名12