一、简介
一个属性映射工具。
项目中各种实体之间会有很多转换,比如 vo、entity、dto、domain等。转换时需要写大量的get、set方法,冗长也工作量很大。再加上转换时可能还会有一定的业务逻辑处理,这会导致映射过程十分繁琐。
本篇博客介绍的工具MapStruct,就可以很好地解决这一问题。
二、实践
实际应用场景主要分为以下几种情况:
1、属性名相同
无需处理,自动映射,类似BeanUtils。
2、属性名不同
需手动指定。
3、属性值需额外的逻辑处理
使用表达式引入逻辑处理。
代码示例
引入jar包
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.1.Final</version>
</dependency>
代码示例
//两个实体PersonVo->PersonDto
@Data
public class PersonVo {
private Integer id;
private String personName;
private Integer type;
}
@Data
public class PersonDto {
private Integer id;