SpringBoot中Dozer的使用小结

网友投稿 627 2022-08-23


SpringBoot中Dozer的使用小结

什么是Dozer?

Dozer是一种java Bean到Java Bean的映射器,递归地将数据从一个对象复制到另一个对象,它是一个强大的,通用的,灵活的,可重用的和可配置的开源映射框架。说白点就是dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样。

dozer是用来两个对象之间属性转换的工具,有了这个工具之后,我们将一个对象的所有属性值转给另一个对象时,就不需要再去写重复的set和get方法了。

下面我们来学习一下dozer的使用

1.添加依赖

net.sf.dozer

dozer

5.5.1

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;

/**

* 各个模块的dozer配置文件

*/

@Configuration

public class DozerConfig {

@Bean(name = "org.dozer.Mapper")

public DozerBeanMapper dozer() {

//这里是配置文件的路径

List 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;

/**

* 所有实体类的父类

*

* @author 刘朋

*
date 2018-11-02

*/

@Data

public abstract class BaseEntity {

/**

* 主键

*/

private String id;

* 创建时间

private Date createTime;

}

创建VO

package com.youyou.address.vo;

import lombok.Data;

/**

* 联系人vo

*

* @author 刘朋

*
date 2018-11-05

*/

@Data

public class ContacterVO {

/**

* 姓名

*/

private String name;

* 性别(0,女;1,男)

private String sex;

* 年龄

private Integer age ;

* 电话

private String phone;

* 地址

private String location;

}

4.创建XML文件

xsi:schemaLocation="http://dozer.sourceforge.net

http://dozer.sourceforge.net/schema/beanmapping.xsd">

com.youyou.address.entity.ContacterDO

com.youyou.address.vo.ContacterVO

xsi:schemaLocation="http://dozer.sourceforge.net

http://dozer.sourceforge.net/schema/beanmapping.xsd">

com.youyou.address.entity.ContacterDO

com.youyou.address.vo.ContacterVO

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;

}

}

搞定!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python遇到的问题(一)(python中遇到的问题)
下一篇:NumPy数组基础(numpy数组类型)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~