注解@Mapper(componentModel = "spring")-自動(dòng)生成DTO-DO的模型映射
注解@Mapper(componentModel = "spring")-自動(dòng)生成VO-DO的模型映射
場景: 插件可以自動(dòng)生成實(shí)現(xiàn)類,實(shí)現(xiàn)DTO-DO各種模型之間的字段映射(不僅僅限制于DTO-DO)
- 第一步: 引入pom文件
<!--mapStruct依賴-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.2.0.CR1</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.2.0.CR1</version>
<scope>provided</scope>
</dependency>
- 第二步:
@Mapper(componentModel = "spring")
public interface RoleConvert {
RoleDO convert(RoleCreateDTO roleCreateDTO);
}
使用:
@Autowired
private RoleConvert roleConvert;
// 轉(zhuǎn)化
RoleDO roleDO = roleConvert.convert(roleCreateDTO);
- 第三步: 看編譯后自動(dòng)生成的實(shí)現(xiàn)類
編譯后自動(dòng)生成了RoleConvert 的實(shí)現(xiàn)類 RoleConvertImpl.class

image.png
- 第四步: 高級(jí)用法,指定映射字段
@Mapper(componentModel = "spring")
public interface ProductConverter {
@Mappings({
@Mapping(source = "id",target = "productId"),
@Mapping(source = "title",target = "productName"),
@Mapping(source = "price",target = "salePrice"),
@Mapping(source = "sellPoint",target = "subTitle"),
@Mapping(source = "image",target = "picUrl")
})
ProductDto item2Dto(ItemDocument item);
}
作者:炒面Z
鏈接:https://www.jianshu.com/p/cc761b64fedb
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
posted on 2021-11-25 11:39 小小鳥兒! 閱讀(2894) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)