1、什么是MapStruct?
MapStruct是一种代码生成器,它极大地简化了基于"约定优于配置"方法的Java bean类型之间映射的实现。在编译时生成代码,生成的映射代码使用纯方法调用,因此快速、类型安全且易于理解。
2、示例讲解
2.1 引入依赖
2.2 编写代码
1) 定义通用BeanConverter
- /**
- * 定义通用BeanConverter,支持对象转换以及对象集合转换
- * Created by Hoscen on 2021/4/18 19:24 with IntelliJ IDEA.
- */
- public interface BeanConverter
{ - TARGET toTarget(SOURCE source);
- @InheritInverseConfiguration(name = "toTarget")
- SOURCE toSource(TARGET target);
- @InheritConfiguration(name = "toTarget")
- List
toTargets(List sources); - @InheritConfiguration(name = "toSource")
- List
toSources(List targets); - }
2)定义要转换的2个java bean User与UserQuery,不重要这里不放代码了,文末有完整源码。
3)User与UserQuery对象转换器定义
- /**
- * Description: User与UserQuery对象转换
- * Created by Hoscen on 2021/4/18 19:32 with IntelliJ IDEA.
- */
- @Mapper
- public interface User2UserQueryConverter extends BeanConverter
{ - User2UserQueryConverter INSTANCE = Mappers.getMapper(User2UserQueryConverter.class);
- }
2.3 测试结果
详细测试用例可以下载源码自己导入IDE,自己跑一跑、看一看。
2.4 编译时自动生成转换器实现
3、总结
1)MapStruct会自动生成get set映射,可以免去我们重复无意义的代码书写;
2)MapStruct生成的代码简洁易懂、方便调试;
3)比反射转换效率高。
4、本文示例源码
源码地址:https://github.com/Hoscen/MapStructDemo
源码里面我使用lombok来简化java bean代码,idea配置lombok插件不会的点这里
5、相关文章
相关文章列表点击这里,后续深度使用之后,也会继续更新更多关于MapStruct的文章。如果觉得有用,欢迎分享。