Java中用来做不同对象之间的转换(DTO,PO,VO等),使用方式简单,只需要按规则写一个相关接口,就能直接完成对象间的转换。MapStruct 是一个 Java 注释处理器,用于生成类型安全的 bean 映射类。在编译期间,MapStruct 将生成此接口的实现。这个实现使用普通的 Java 方法调用(get,set方法)来映射源对象和目标对象,而不是使用反射。
依赖:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Final</version>
</dependency>
定义:
@Mapper(componentModel = "spring")
public interface XXXXBeanUtil {
XXXXBeanUtil INSTANCE = Mappers.getMapper(XXXXBeanUtil.class);
XXXXPO dtoToPo(XXXDTO source);
List<XXXXPO> listDtoToPo(List<XXXDTO> source);
XXXXVO dtoToVo(XXXDTO source);
XXXXVO poToVo(XXXPO source);
}
调用:
XXXXPO xxxPo = XXXXBeanUtil.INSTANCE.dtoToPo(XXXDTO);
若定义时间不写:
XXXXBeanUtil INSTANCE = Mappers.getMapper(XXXXBeanUtil.class);
则调用时间可先通过Autowired注入
@Autowired
private XXXXBeanUtil xxxxBeanUtil;
............
XXXXPO xxxPo = xxxxBeanUtil.dtoToPo(XXXDTO);