文章目录

  • 介绍
  • 引入
  • 案例
    • 创建实体类
    • 创建全局配置文件
    • 创建映射文件
    • 创建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的使用总结相关推荐

  1. java反射po转vo_三步走使用Dozer (Do,Po,Vo转换工具)

    第一步 把依赖加上 com.github.dozermapper dozer-core 6.5.0 第二步,不同属性名的在被转换bean上(Do)注解@Mapping("vo里该字段名称&q ...

  2. jaxb和dozer简介

    一.jaxb是什么      JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然.      我们把对象与关系数据库 ...

  3. java dozer 深度_java – Dozer深度映射设置为Set

    免责声明: Mapping deep properties with intermediate collections in dozer已经提出了同样的问题,但没有接受答案(我的案例没有正确答案). ...

  4. Dozer 使用总结

    http://seyaa.iteye.com/blog/762494 1.1 什么是dozer? Dozer 是一个对象转换工具. Dozer可以在JavaBean到JavaBean之间进行递归数据复 ...

  5. dozer bean_使用Dozer框架进行Bean操作

    dozer bean 介绍 如您所知,您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置. 您是否考虑过复制基本上是POJO的java对象? 在很多情况下,您需要将源bean的内容复制到目标b ...

  6. 使用Dozer框架进行Bean操作

    介绍 如您所知,您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置. 您是否考虑过复制基本上是POJO的java对象? 在许多情况下,您需要将源bean的内容复制到目标bean. 我不关心对象 ...

  7. java dozer map转对象_对象转换利器之Dozer

    在Java的世界中,经常会涉及到需要在2个对象中进行转换,比如说: 调用SOAP Web服务,需要把自己的Domain对象转换为Soap服务的Jaxb对象请求, 在分层级SOA架构中,2个层级之间Do ...

  8. 使用了Spring boot devtools, dozer转换嵌套对象失败解决记录

    2019独角兽企业重金招聘Python工程师标准>>> 业务背景: 添加商品以及价格,一个商品会有多个价格(针对不同用户等级). 代码: 先在controller中使用dozer将g ...

  9. dozer无法映射java8中的LocalDateTime类型的解决方案

    dozer是一个很方便的bean映射工具包,可以很轻松地做到两个bean对象的属性值复制,但是dozer包在2014年的时候停止更新了,而jdk1.8也是2014年发布的,所以对于java8中的新日期 ...

  10. java dozer,MapStruct相当于提示(Dozer)?

    在Dozer中,我们能够在字段映射期间提示提示中的接口 . 我们如何在MapStruct中实现相同的目标? 我无法在这里输入确切的代码 . 但是,它与下面类似 . 我们这里有一个Domain类示例: ...

最新文章

  1. AutoX“真无人”车队驶上繁忙街头,中国正式进无人驾驶时代
  2. 一个典型的后台软件系统的设计复盘——(二)如何id一个事物
  3. cronolog apache 日志分割
  4. 电路原理邱关源_看高手是如何学习电路原理的,有哪些捷径?
  5. C#中Brush、Color、String相互转换
  6. java中break和continue的用法例子
  7. tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
  8. 快速锁定Windows XP桌面的几个方法
  9. 手机可以和linux数据互传吗,没网络也可以传输数据?OPPO互传与HUAWEI Share实测体验...
  10. Dev-C++/Cpp使用入门详解
  11. 新浪微博java sdk文档_新浪微博开放平台:java SDK介绍及使用说明
  12. spring事务出现的超卖问题
  13. 汇编启蒙题--by cyl老师
  14. 长安十二时辰大结局一段时间了
  15. Oracle设计题资料分析题
  16. 安卓AsyncTask
  17. 3D 霍尔效应位置传感器原理解析
  18. 制作TMS320F28035最小系统板
  19. css文字超出省略号代替不起作用解决方法汇总大全
  20. 正则表达式中/g /i /m /e /x /s的用法

热门文章

  1. 弘辽科技:参加拼多多九块九活动有什么用?活动流程是怎样的?
  2. 小程序token有效期_微信小程序token过期时间后重新获取-微信小程序过期恢复步骤-微信小程序怎么找...
  3. ibm3630m4服务器装系统,ibm x3630m4安装Windows2008R2系统
  4. Greenfoot游戏项目_水果篮子
  5. 专心致志求精进——给自己的生日祝福
  6. 彻底删除oracle数据,彻底删除Oracle数据库的方法
  7. int类型的数值表示数的范围
  8. 适合学生写的请假管理系统
  9. Unsupervised Hyperspectral Mixed Noise Removal Via Spatial-Spectral Constrained Deep Image Prior
  10. antdv table 的表格列配置描述 columns