一、MapStruct介绍
MapStruct是一个代码生成器的工具,简化了不同JavaBeen之间的映射的处理,简单地说,MapStruct可以将几种类型的对象映射为另外一种类型,如将DO(业务实体对象)对象转为DTO(数据传输对象),避免了在业务代码内new DTO对象和set方法。

二、过程

(1)首先搭建环境基于Maven,添加所需要的jar包,有的需要添加依赖。(我这里没有到那一步,看了好多文章都要在pom.xml配置一下,不了解的学习一下其他文章)。

(2) MapStruct实体间的转换

(一)创建需要互相转换的实体类

1. 创建 PeopleEntity.java

Test类中引入mapper_实体类


2.创建 PeopleDTO.java

Test类中引入mapper_实体类_02


3.创建 User.java

Test类中引入mapper_java_03


4. PeopleMapper 映射接口

要生成一个PeopleDTO与PeopleEntity对象相互转换的映射器,我们需要定义一个mapper接口。像这两个实体类有些属性不一 样时,我们可以通过@Mapping注解来进行转换.

① @Mapper注解标记这个接口作为一个映射接口,并且是编译时MapStruct处理器的入口。

② @Mapping解决源对象和目标对象中,属性名字不同的情况。

③ Mappers.getMapper自动生成的接口的实现可以通过Mapper的class对象获取,从而让客户端可以访问Mapper接口的实现。

Test类中引入mapper_实体类_04


5. 写一个测试上面的 MapperTestApplication.java

Test类中引入mapper_自动生成_05


6. 编译写的测试代码

编译完后的实现类可以到target目录看到自动生成PeopleMapperImpl.Java

Test类中引入mapper_java_06


(二)测试结果

从输出结果可以看到 PeopleEntity属性值已经转为PeopleDTO属性对应的值,对于属性名称不同的情况、以及属性类型不同都自动帮助我们转换了。

Test类中引入mapper_实体类_07