本文共 2556 字,大约阅读时间需要 8 分钟。
MapStruct(https://mapstruct.org/ )是一种代码生成器,它极大地简化了基于”约定优于配置”方法的Java bean类型之间映射的实现。生成的映射代码使用纯方法调用,因此快速、类型安全且易于理解。
一、pom.xml的maven 依赖
1.3.1.Final org.mapstruct mapstruct ${org.mapstruct.version} org.apache.maven.plugins maven-compiler-plugin 3.8.1
二、业务代码
2.1 实体类
package com.demo;import lombok.Data;import java.util.Date;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2020/9/29 9:40 * @description */@Datapublic class PersonDO { private Integer id; private String name; private int age; private Date birthday; private String gender;}
package com.demo;import lombok.Data;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2020/9/29 9:43 * @description */@Datapublic class PersonDTO { private String userName; private Integer age; private String birthday; private String gender;}
2.2 定义映射接口
package com.demo;import org.mapstruct.Mapper;import org.mapstruct.Mapping;import org.mapstruct.factory.Mappers;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2020/9/29 9:30 * @description */@Mapperinterface PersonConvert { PersonConvert INSTANCE = Mappers.getMapper(PersonConvert.class); @Mapping(source = "name", target = "userName") @Mapping(target = "birthday", source = "birthday",dateFormat = "yyyy-MM-dd HH:mm:ss") PersonDTO do2dto(PersonDO person);}
2.3 测试类
package com.demo;import java.util.Date;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2020/9/29 9:21 * @description */public class MapStructDemo { public static void main(String[] args) { PersonDO personDO = new PersonDO(); personDO.setName("xiaobu"); personDO.setAge(26); personDO.setBirthday(new Date()); personDO.setId(1); personDO.setGender("男"); PersonDTO personDTO = PersonConvert.INSTANCE.do2dto(personDO); System.out.println(personDTO); }}解决方案: 在pom.xml里面添加lombok依赖
参考:
转载地址:http://szgai.baihongyu.com/