一、MapStruct介绍
MapStruct是一个代码生成器的工具,简化了不同JavaBeen之间的映射的处理,简单地说,MapStruct可以将几种类型的对象映射为另外一种类型,如将DO(业务实体对象)对象转为DTO(数据传输对象),避免了在业务代码内new DTO对象和set方法。
二、过程
(1)首先搭建环境基于Maven,添加所需要的jar包,有的需要添加依赖。(我这里没有到那一步,看了好多文章都要在pom.xml配置一下,不了解的学习一下其他文章)。
(2) MapStruct实体间的转换
(一)创建需要互相转换的实体类
1. 创建 PeopleEntity.java
2.创建 PeopleDTO.java
3.创建 User.java
4. PeopleMapper 映射接口
要生成一个PeopleDTO与PeopleEntity对象相互转换的映射器,我们需要定义一个mapper接口。像这两个实体类有些属性不一 样时,我们可以通过@Mapping注解来进行转换.
① @Mapper注解标记这个接口作为一个映射接口,并且是编译时MapStruct处理器的入口。
② @Mapping解决源对象和目标对象中,属性名字不同的情况。
③ Mappers.getMapper自动生成的接口的实现可以通过Mapper的class对象获取,从而让客户端可以访问Mapper接口的实现。
5. 写一个测试上面的 MapperTestApplication.java
6. 编译写的测试代码
编译完后的实现类可以到target目录看到自动生成PeopleMapperImpl.Java
(二)测试结果
从输出结果可以看到 PeopleEntity属性值已经转为PeopleDTO属性对应的值,对于属性名称不同的情况、以及属性类型不同都自动帮助我们转换了。