dozer的使用总结
文章目录
- 介绍
- 引入
- 案例
- 创建实体类
- 创建全局配置文件
- 创建映射文件
- 创建yml配置文件
- 创建单元测试
介绍
Dozer是一种Java Bean-to-Bean映射框架,它允许简单而灵活地配置Java对象之间的字段映射。Dozer可以映射同一类型的不同对象、不同类型之间的对象、以及对象之间的集合。它还支持许多高级映射选项,例如自定义转换器和逐级映射。Dozer可以用于许多不同的应用程序,包括DAO和WebService。
引入
dozer的maven坐标:
<dependency><groupId>com.github.dozermapper</groupId><artifactId>dozer-core</artifactId><version>6.5.0</version>
</dependency>
为了简化使用方式,dozer还提供了starter,其maven坐标为:
<dependency><groupId>com.github.dozermapper</groupId><artifactId>dozer-spring-boot-starter</artifactId><version>6.5.0</version>
</dependency>
案例
创建实体类
package com.rqz.dto;
import lombok.Data;
@Data
public class UserDTO {private String userId;private String userName;private int userAge;private String address;private String birthday;
}
package com.rqz.entity;
import lombok.Data;
import java.util.Date;
@Data
public class UserEntity {private String id;private String name;private int age;private String address;private Date birthday;
}
创建全局配置文件
在resources/dozer/目录下创建dozer的全局配置文件global.dozer.xml
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://dozermapper.github.io/schema/bean-mapping"xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping http://dozermapper.github.io/schema/bean-mapping.xsd"><!--全局配置:<date-format>表示日期格式--><configuration><date-format>yyyy-MM-dd</date-format></configuration>
</mappings>
注:全局配置文件名称可以任意
创建映射文件
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://dozermapper.github.io/schema/bean-mapping"xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mappinghttp://dozermapper.github.io/schema/bean-mapping.xsd"><!--描述两个类中属性的对应关系,对于两个类中同名的属性可以不映射--><mapping date-format="yyyy-MM-dd"><class-a>cn.rqz.entity.UserEntity</class-a><class-b>cn.rqz.dto.UserDTO</class-b><field><a>id</a><b>userId</b></field><field><a>name</a><b>userName</b></field><field><a>age</a><b>userAge</b></field></mapping><!--可以使用map-id指定映射的标识,在程序中通过此标识来确定使用当前这个映射关系--><mapping date-format="yyyy-MM-dd" map-id="user"><class-a>cn.rqz.entity.UserEntity</class-a><class-b>cn.rqz.dto.UserDTO</class-b><field><a>id</a><b>userId</b></field><field><a>name</a><b>userName</b></field><field><a>age</a><b>userAge</b></field></mapping>
</mappings>
注:映射文件名称可以任意
创建yml配置文件
dozer:mappingFiles:- classpath:dozer/global.dozer.xml- classpath:dozer/biz.dozer.xml
创建单元测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DozerApp.class)
public class DozerTest {@Autowiredprivate Mapper mapper;//测试使用案例@Testpublic void testDozer1(){UserDTO userDTO = new UserDTO();userDTO.setUserId("100");userDTO.setUserName("itcast");userDTO.setUserAge(20);userDTO.setAddress("bj");userDTO.setBirthday("2010-11-20");UserEntity user = mapper.map(userDTO, UserEntity.class);System.out.println(user);}//测试覆盖案例@Testpublic void testDozer2(){UserDTO userDTO = new UserDTO();userDTO.setUserId("100");userDTO.setUserName("itcast");userDTO.setUserAge(20);userDTO.setAddress("bj");userDTO.setBirthday("2010-11-20");UserEntity user = new UserEntity();user.setId("200");System.out.println(user);mapper.map(userDTO,user);System.out.println(user);}//测试指定映射的标识案例@Testpublic void testDozer3(){UserDTO userDTO = new UserDTO();userDTO.setUserId("100");userDTO.setUserName("itcast");userDTO.setUserAge(20);userDTO.setAddress("bj");UserEntity user = new UserEntity();System.out.println(user);mapper.map(userDTO,user,"user");System.out.println(user);}
}
dozer的使用总结相关推荐
- java反射po转vo_三步走使用Dozer (Do,Po,Vo转换工具)
第一步 把依赖加上 com.github.dozermapper dozer-core 6.5.0 第二步,不同属性名的在被转换bean上(Do)注解@Mapping("vo里该字段名称&q ...
- jaxb和dozer简介
一.jaxb是什么 JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然. 我们把对象与关系数据库 ...
- java dozer 深度_java – Dozer深度映射设置为Set
免责声明: Mapping deep properties with intermediate collections in dozer已经提出了同样的问题,但没有接受答案(我的案例没有正确答案). ...
- Dozer 使用总结
http://seyaa.iteye.com/blog/762494 1.1 什么是dozer? Dozer 是一个对象转换工具. Dozer可以在JavaBean到JavaBean之间进行递归数据复 ...
- dozer bean_使用Dozer框架进行Bean操作
dozer bean 介绍 如您所知,您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置. 您是否考虑过复制基本上是POJO的java对象? 在很多情况下,您需要将源bean的内容复制到目标b ...
- 使用Dozer框架进行Bean操作
介绍 如您所知,您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置. 您是否考虑过复制基本上是POJO的java对象? 在许多情况下,您需要将源bean的内容复制到目标bean. 我不关心对象 ...
- java dozer map转对象_对象转换利器之Dozer
在Java的世界中,经常会涉及到需要在2个对象中进行转换,比如说: 调用SOAP Web服务,需要把自己的Domain对象转换为Soap服务的Jaxb对象请求, 在分层级SOA架构中,2个层级之间Do ...
- 使用了Spring boot devtools, dozer转换嵌套对象失败解决记录
2019独角兽企业重金招聘Python工程师标准>>> 业务背景: 添加商品以及价格,一个商品会有多个价格(针对不同用户等级). 代码: 先在controller中使用dozer将g ...
- dozer无法映射java8中的LocalDateTime类型的解决方案
dozer是一个很方便的bean映射工具包,可以很轻松地做到两个bean对象的属性值复制,但是dozer包在2014年的时候停止更新了,而jdk1.8也是2014年发布的,所以对于java8中的新日期 ...
- java dozer,MapStruct相当于提示(Dozer)?
在Dozer中,我们能够在字段映射期间提示提示中的接口 . 我们如何在MapStruct中实现相同的目标? 我无法在这里输入确切的代码 . 但是,它与下面类似 . 我们这里有一个Domain类示例: ...
最新文章
- AutoX“真无人”车队驶上繁忙街头,中国正式进无人驾驶时代
- 一个典型的后台软件系统的设计复盘——(二)如何id一个事物
- cronolog apache 日志分割
- 电路原理邱关源_看高手是如何学习电路原理的,有哪些捷径?
- C#中Brush、Color、String相互转换
- java中break和continue的用法例子
- tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
- 快速锁定Windows XP桌面的几个方法
- 手机可以和linux数据互传吗,没网络也可以传输数据?OPPO互传与HUAWEI Share实测体验...
- Dev-C++/Cpp使用入门详解
- 新浪微博java sdk文档_新浪微博开放平台:java SDK介绍及使用说明
- spring事务出现的超卖问题
- 汇编启蒙题--by cyl老师
- 长安十二时辰大结局一段时间了
- Oracle设计题资料分析题
- 安卓AsyncTask
- 3D 霍尔效应位置传感器原理解析
- 制作TMS320F28035最小系统板
- css文字超出省略号代替不起作用解决方法汇总大全
- 正则表达式中/g /i /m /e /x /s的用法
热门文章
- 弘辽科技:参加拼多多九块九活动有什么用?活动流程是怎样的?
- 小程序token有效期_微信小程序token过期时间后重新获取-微信小程序过期恢复步骤-微信小程序怎么找...
- ibm3630m4服务器装系统,ibm x3630m4安装Windows2008R2系统
- Greenfoot游戏项目_水果篮子
- 专心致志求精进——给自己的生日祝福
- 彻底删除oracle数据,彻底删除Oracle数据库的方法
- int类型的数值表示数的范围
- 适合学生写的请假管理系统
- Unsupervised Hyperspectral Mixed Noise Removal Via Spatial-Spectral Constrained Deep Image Prior
- antdv table 的表格列配置描述 columns