开发过程中,总有各种实体准换的需要,属性都差不多,但是多一个少一个的,一顿set、get太麻烦。
所以引入了MAPSTRUCT帮我们搞这些,开整!
1、引入依赖
gradle
implementation "org.mapstruct:mapstruct:1.4.2.Final"
annotationProcessor "org.mapstruct:mapstruct-processor:1.4.2.Final"
maven
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</dependency>
2、创建convert接口 (具体在注释里)
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SysRoleConvert {
SysRoleConvert INSTANCE = Mappers.getMapper(SysRoleConvert.class);
SysRole vo2po(AddRoleVO vo);
@Mappings({
@Mapping(source = "roleId", target = "id"),
})
SysRole vo2po(EditRoleVO vo);
@Mappings({
@Mapping(source = "id", target = "roleId"),
})
SearchRoleResultVO po2vo(SysRole po);
@Mappings({
@Mapping(source = "id", target = "roleId"),
})
RoleListVO po2ListVo(SysRole po);
@Mappings(value = {
@Mapping(target = "id", ignore = true),
})
NodeVO po2vo4node(TaskNode po);
}
3、使用, END
SysRoleConvert.INSTANCE.po2vo(po)