使用场景:
VO->DTO->DO相互映射转化
使用分为四步:
1.引入依赖
2.新建一个抽象类或接口,并标注@Mapper注解
3.编写转化方法
4.获取对象并调用方法
默认映射规则:
(1)同名且同类型的属性,会自动映射,不同类型会尝试转化为同一类型。
(2)mapstruct会自动类型转化,支持的类型转化的类型如下:
<1> 基本类型和他们对应的包装类型之间会自动转化;
<2> 8中基本类型(包括他们的包装类型)和String类型之间的转化。
<3> 日期类型和String之间转化
获取UserConvert 对象实例两种方式:
方式一:public static UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);
使用:在调用类中直接通过类来掉用该实例
方式二:在UserConvert类的@Mapper注解中添加 componentModel = “spring”
使用:在调用类中可直接注入UserConvert
@Mappings 和 @Mapping 注解
@Mappings是一个数组,可定义映射规则。
@Mapping是映射规则的实现。其常用方法如下:
(1)source 源对象、target 目标对象
(2)dateFormat 日期格式化、numberFormat 数字格式化
(3)ignore 忽略某个属性(不会映射到目标对象)
遇到的问题:
在新添加字段后,要重新打包构建。才会自动生成接口实现类