文章目录

介绍引入案例创建实体类创建全局配置文件创建映射文件创建yml配置文件创建单元测试

介绍

Dozer是一种Java Bean-to-Bean映射框架,它允许简单而灵活地配置Java对象之间的字段映射。Dozer可以映射同一类型的不同对象、不同类型之间的对象、以及对象之间的集合。它还支持许多高级映射选项,例如自定义转换器和逐级映射。Dozer可以用于许多不同的应用程序,包括DAO和WebService。

引入

dozer的maven坐标:

com.github.dozermapper

dozer-core

6.5.0

为了简化使用方式,dozer还提供了starter,其maven坐标为:

com.github.dozermapper

dozer-spring-boot-starter

6.5.0

案例

创建实体类

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

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">

yyyy-MM-dd

注:全局配置文件名称可以任意

创建映射文件

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">

cn.rqz.entity.UserEntity

cn.rqz.dto.UserDTO

id

userId

name

userName

age

userAge

cn.rqz.entity.UserEntity

cn.rqz.dto.UserDTO

id

userId

name

userName

age

userAge

注:映射文件名称可以任意

创建yml配置文件

dozer:

mappingFiles:

- classpath:dozer/global.dozer.xml

- classpath:dozer/biz.dozer.xml

创建单元测试

@RunWith(SpringRunner.class)

@SpringBootTest(classes = DozerApp.class)

public class DozerTest {

@Autowired

private Mapper mapper;

//测试使用案例

@Test

public 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);

}

//测试覆盖案例

@Test

public 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);

}

//测试指定映射的标识案例

@Test

public 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);

}

}

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: