好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SpringBoot中Dozer的使用小结

什么是Dozer?

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

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

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

1.添加依赖

?

1

2

3

4

5

<dependency>

            <groupId>net.sf.dozer</groupId>

            <artifactId>dozer</artifactId>

            <version> 5.5 . 1 </version>

        </dependency>

2.创建配置类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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.创建两个POJO

创建DO

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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的父类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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;

      * 创建时间

     private Date createTime;

}

创建VO

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.youyou.address.vo;

 

import lombok.Data;

/**

  * 联系人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.创建XML文件

?

1

2

3

4

5

6

7

8

9

10

11

<? xml version = "1.0" encoding = "UTF-8" ?>

< mappings xmlns = "http://dozer.sourceforge.net" xmlns:xsi = "http://HdhCmsTestw3.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.使用

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

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使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/lp840312696/article/details/83748979

查看更多关于SpringBoot中Dozer的使用小结的详细内容...

  阅读:18次