注解@Mapper(componentModel = "spring")-自动生成VO-DO的模型映射
场景: 插件可以自动生成实现类,实现DTO-DO各种模型之间的字段映射(不仅仅限制于DTO-DO)
<!--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;
// 转化
RoleDO roleDO = roleConvert.convert(roleCreateDTO);
- 3.maven 的clean compile过后生成实现类
- 4.高级用法,指定映射字段
@Mapper(componentModel = "spring")
public interface ProductConverter {
@Mappings({
@Mapping(source = "item.id",target = "productId"),
@Mapping(source = "item.title",target = "productName"),
@Mapping(source = "item.price",target = "salePrice"),
@Mapping(source = "item.sellPoint",target = "subTitle"),
@Mapping(source = "item.image",target = "picUrl")
})
ProductDto item2Dto(ItemDocument item);
}