SpringBoot中Dozer的使用小結
什么是Dozer?
Dozer是一種Java Bean到Java Bean的映射器,遞歸地將數(shù)據(jù)從一個對象復制到另一個對象,它是一個強大的,通用的,靈活的,可重用的和可配置的開源映射框架。
說白點就是dozer是一個能把實體和實體之間進行轉換的工具.只要建立好映射關系.就像是ORM的數(shù)據(jù)庫和實體映射一樣。
dozer是用來兩個對象之間屬性轉換的工具,有了這個工具之后,我們將一個對象的所有屬性值轉給另一個對象時,就不需要再去寫重復的set和get方法了。
下面我們來學習一下dozer的使用
1.添加依賴
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>2.創(chuàng)建配置類
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<String> mappingFiles = Arrays.asList("dozer/dozer-mapping.xml");
DozerBeanMapper dozerBean = new DozerBeanMapper();
dozerBean.setMappingFiles(mappingFiles);
return dozerBean;
}
}3.創(chuàng)建兩個POJO
創(chuàng)建DO
package com.youyou.address.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youyou.base.BaseEntity;
import lombok.Data;
/**
* 數(shù)據(jù)庫實體,聯(lián)系人
*/
@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 劉朋
* <br/>date 2018-11-02
*/
@Data
public abstract class BaseEntity {
/**
* 主鍵
*/
private String id;
* 創(chuàng)建時間
private Date createTime;
}創(chuàng)建VO
package com.youyou.address.vo;
import lombok.Data;
/**
* 聯(lián)系人vo
*
* @author 劉朋
* <br/>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.創(chuàng)建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 = "聯(lián)系人接口")
@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("添加一個聯(lián)系人");
//使用dozer進行轉換
ContacterDO contacterDO = dozerBeanMapper.map(contacterVO, ContacterDO.class);
service.insertAutoKey(contacterDO);
return contacterVO;
}
}搞定!
到此這篇關于SpringBoot中Dozer的使用的文章就介紹到這了,更多相關SpringBoot Dozer使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring boot 應用實現(xiàn)動態(tài)刷新配置詳解
這篇文章主要介紹了spring boot 配置動態(tài)刷新實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2021-09-09
Java BeanUtils.copyProperties的詳解
這篇文章主要介紹了Java BeanUtils.copyProperties的詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-08-08
Java分批將List數(shù)據(jù)導入數(shù)據(jù)庫的解決過程
這篇文章主要給大家介紹了關于Java分批將List數(shù)據(jù)導入數(shù)據(jù)庫的解決過程,文中通過代碼示例介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友可以參考下2023-08-08

