RT
这里真的是简单整合,毕竟网站里面已经好多人写了整合案例了,只不过,我在这些教程里面发现了一些痛点,让我吐血三升,含泪写一份简单的整合示例
感谢
MapStruct实现对象映射
感谢这个大哥写的这篇文章,让我找到了问题所在
痛点
站内某些博主的案例,有一点很重要的没有贴出来,那就是:MapStruct的转换是在编译阶段完成的,所以,需要在打包项目的pom.xml
的maven-compiler-plugin
插件中添加如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<!-- 此处,lombok依赖一定要放在,Mapstruct-processor依赖之前。否则,生成了maptruct的实现类,但该类只创建了对象,没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<!-- 如果是0.1.0 有可能出现生成了MapStruct的实现类,但该类只创建了对象,没有进行赋值 -->
<version>0.2.0</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
如果你没有上述配置,你生成出来的转换代码实现,只是创建了对象,但是没有具体实现,即赋值过程 。
整合过程
在pom.xml中添加mapstruct的依赖:(这边版本用的 1.4.1.final)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
接着,生成对应的Mapper对象就好,如下所示:
@Mapper
public interface PojoConverter {
PojoConverter INSTANCE = Mappers.getMapper(PojoConverter.class);
/**
* SourcePojo转换成TargetPojo对象
*/
TargetPojo orderInfoToConsumeOrder(SourcePojo sourcePojo);
}
OK,到了这里基本完事了
然后maven install一下,就会在target目录下,生成一个generated-sources目录,就能看到它的转换实现代码了
建议
建议能使用mapstruct就使用mapstruct,因为性能提升确实挺大的。在没使用这个东西之前,我能get/set的就get/set,基本不使用BeanUtils,这个东西太坑了,拉性能
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/180549.html