SpringBoot中Dozer的使用小結(jié)
什么是Dozer?
Dozer是一種Java Bean到Java Bean的映射器,遞歸地將數(shù)據(jù)從一個(gè)對(duì)象復(fù)制到另一個(gè)對(duì)象,它是一個(gè)強(qiáng)大的,通用的,靈活的,可重用的和可配置的開(kāi)源映射框架。
說(shuō)白點(diǎn)就是dozer是一個(gè)能把實(shí)體和實(shí)體之間進(jìn)行轉(zhuǎn)換的工具.只要建立好映射關(guān)系.就像是ORM的數(shù)據(jù)庫(kù)和實(shí)體映射一樣。
dozer是用來(lái)兩個(gè)對(duì)象之間屬性轉(zhuǎn)換的工具,有了這個(gè)工具之后,我們將一個(gè)對(duì)象的所有屬性值轉(zhuǎn)給另一個(gè)對(duì)象時(shí),就不需要再去寫(xiě)重復(fù)的set和get方法了。
下面我們來(lái)學(xué)習(xí)一下dozer的使用
1.添加依賴(lài)
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>2.創(chuàng)建配置類(lèi)
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;
/**
* 各個(gè)模塊的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)建兩個(gè)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ù)庫(kù)實(shí)體,聯(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的父類(lèi)
package com.youyou.base;
import lombok.Data;
import java.util.Date;
/**
* 所有實(shí)體類(lèi)的父類(lèi)
*
* @author 劉朋
* <br/>date 2018-11-02
*/
@Data
public abstract class BaseEntity {
/**
* 主鍵
*/
private String id;
* 創(chuàng)建時(shí)間
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">
<!--如果兩個(gè)類(lèi)需要裝換的屬性名相同則不需要寫(xiě)這個(gè)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("添加一個(gè)聯(lián)系人");
//使用dozer進(jìn)行轉(zhuǎn)換
ContacterDO contacterDO = dozerBeanMapper.map(contacterVO, ContacterDO.class);
service.insertAutoKey(contacterDO);
return contacterVO;
}
}搞定!
到此這篇關(guān)于SpringBoot中Dozer的使用的文章就介紹到這了,更多相關(guān)SpringBoot Dozer使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何用Netty實(shí)現(xiàn)高效的HTTP服務(wù)器
這篇文章主要介紹了如何用Netty實(shí)現(xiàn)高效的HTTP服務(wù)器,對(duì)HTTP感興趣的同學(xué)可以參考一下2021-04-04
Spring boot 應(yīng)用實(shí)現(xiàn)動(dòng)態(tài)刷新配置詳解
這篇文章主要介紹了spring boot 配置動(dòng)態(tài)刷新實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09
Java BeanUtils.copyProperties的詳解
這篇文章主要介紹了Java BeanUtils.copyProperties的詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
詳細(xì)解析Java中抽象類(lèi)和接口的區(qū)別
這篇文章主要介紹了Java中抽象類(lèi)和接口的區(qū)別詳解,需要的朋友可以參考下2014-10-10
Java分批將List數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)的解決過(guò)程
這篇文章主要給大家介紹了關(guān)于Java分批將List數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)的解決過(guò)程,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-08-08
SpringMVC整合SSM實(shí)現(xiàn)異常處理器詳解
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)2022-10-10
SpringBoot常用讀取配置文件的3種方法小結(jié)
本文主要介紹了SpringBoot常用讀取配置文件的3種方法小結(jié),主要包括@Value讀取配置文件,@ConfigurationProperties 讀取配置文件和讀取配置文件中的List,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

