SpringBoot中Dozer的使用小结
短信预约 -IT技能 免费直播动态提醒
什么是Dozer?
Dozer是一种Java Bean到Java Bean的映射器,递归地将数据从一个对象复制到另一个对象,它是一个强大的,通用的,灵活的,可重用的和可配置的开源映射框架。
说白点就是dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样。
dozer是用来两个对象之间属性转换的工具,有了这个工具之后,我们将一个对象的所有属性值转给另一个对象时,就不需要再去写重复的set和get方法了。
下面我们来学习一下dozer的使用
1.添加依赖
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>
2.创建配置类
package com.youyou.util.utils;
import org.dozer.DozerBeanMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
import java.util.List;
@Configuration
public class DozerConfig {
@Bean(name = "org.dozer.Mapper")
public DozerBeanMapper dozer() {
//这里是配置文件的路径
List<String> mappingFiles = Arrays.asList("dozer/dozer-mapping.xml");
DozerBeanMapper dozerBean = new DozerBeanMapper();
dozerBean.setMappingFiles(mappingFiles);
return dozerBean;
}
}
3.创建两个POJO
创建DO
package com.youyou.address.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youyou.base.BaseEntity;
import lombok.Data;
@Data
@TableName("TS_Contacter")
public class ContacterDO extends BaseEntity {
private String name;
* 性别(0,女;1,男)
private String sex;
* 年龄
private Integer age ;
* 电话
private String phone;
* 地址
private String location;
* 删除(0,未删除;1,删除)
private String dflag ;
}
DO的父类
package com.youyou.base;
import lombok.Data;
import java.util.Date;
@Data
public abstract class BaseEntity {
private String id;
* 创建时间
private Date createTime;
}
创建VO
package com.youyou.address.vo;
import lombok.Data;
@Data
public class ContacterVO {
private String name;
* 性别(0,女;1,男)
private String sex;
* 年龄
private Integer age ;
* 电话
private String phone;
* 地址
private String location;
}
4.创建XML文件
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<!--如果两个类需要装换的属性名相同则不需要写这个mapping-->
<mapping>
<class-a>com.youyou.address.entity.ContacterDO</class-a>
<class-b>com.youyou.address.vo.ContacterVO</class-b>
</mapping>
</mappings>
5.使用
package com.youyou.address.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youyou.address.entity.ContacterDO;
import com.youyou.address.service.ContacterService;
import com.youyou.address.vo.ContacterVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.dozer.DozerBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(description = "联系人接口")
@RestController
@RequestMapping(value = "/contacter")
public class ContacterController {
@Autowired
private ContacterService service;
private DozerBeanMapper dozerBeanMapper ;
@ApiOperation(value = "新增")
@GetMapping("/add")
public ContacterVO add(ContacterVO contacterVO) {
System.out.println("添加一个联系人");
//使用dozer进行转换
ContacterDO contacterDO = dozerBeanMapper.map(contacterVO, ContacterDO.class);
service.insertAutoKey(contacterDO);
return contacterVO;
}
}
搞定!
到此这篇关于SpringBoot中Dozer的使用的文章就介绍到这了,更多相关SpringBoot Dozer使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341