springboot项目中mapstruct简单使用(gradle、maven)
·
开发过程中,总有各种实体准换的需要,属性都差不多,但是多一个少一个的,一顿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);
/**
* vo -> po
*
* 字段名相同的会自动填好
*/
SysRole vo2po(AddRoleVO vo);
/**
* vo -> po
*/
@Mappings({
@Mapping(source = "roleId", target = "id"),
})
SysRole vo2po(EditRoleVO vo);
/**
* po -> vo
*
* @date 2022/4/18 17:05
*/
@Mappings({
@Mapping(source = "id", target = "roleId"),
})
SearchRoleResultVO po2vo(SysRole po);
/**
* po -> vo
*
* 字段名不同时可以手动指定映射关系
* roleListVO中字段名为id,SysRole中为roleId
*/
@Mappings({
@Mapping(source = "id", target = "roleId"),
})
RoleListVO po2ListVo(SysRole po);
/**
* TODO
*
* 不需要映射的字段可以通过 ignore = true 排除
* 排除id字段
*/
@Mappings(value = {
@Mapping(target = "id", ignore = true),
})
NodeVO po2vo4node(TaskNode po);
}
3、使用, END
SysRoleConvert.INSTANCE.po2vo(po)

更多推荐
所有评论(0)