专注于Java、Golang、软件架构、项目管理

Back

在java开发中,对象之间的转换是一项常见的任务。通常有2种做法:手写和使用JavaBeanUtils。前者降低工作效率还容易出错,而后者因为使用了反射又会导致性能下降。为了解决这个问题,java社区出现了Mapstruct框架。它是一个强大的代码生成器,在编译时生成代码,使对象间的映射变得简单、高效和高性能,降低了维护成本。

Mapstruct通过注解处理器集成到构件工具和IDE中,简化了集成。

引入#

jar包依赖,如果lombok和mapstruct配合使用,一定注意此配置中的注释。因这两个都是使用注解处理器在编译时运行,并且通过annotationProcessorPaths强制规定注解处理的顺序。保证了编译的时候一定按此顺序运行。

安装插件#

搜索MapStruct Support安装即可,可以在使用MapStruct时获得更加丰富代码提示。

简单示例#

定义两个类做转换

定义转换接口,后续直接通过spring注入UserConverter即可使用。

import org.mapstruct.Mapper;

@Mapper(componentModel = MappingConstants.ComponentModel.SPRING) //此处的model是mapstruct的,并且将UserConverter注入到了spring容器中
public interface UserConverter {
	UserEntity po2entity(UserPo userPo);
}
java

总结#

1、mapstruct与lombok配合使用,一定注意导包的问题。搭配IDE插件,使用起来更方便

2、本文只讲了一些基础的使用,其他深入的使用,可以参考其官网 https://mapstruct.org/ 或者 https://juejin.cn/post/6956190395319451679