简介
MapStruct是满足JSR269规范的一个Java注解处理器,用于为Java Bean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。
您所要做的就是定义一个mapper接口(@Mapper),该接口用于声明所有必须的映射方法。在编译期间MapStruct会为该接口自动生成实现类。该实现类使用简单的Java方法调用来映射source-target对象,在此过程中没有反射或类似的行为发生。
优点
- 与手工编写映射代码相比:
MapStruct通过生成冗长且容易出错的代码来节省时间。 - 与动态映射框架相比:
效率更高:使用简单的Java方法调用代替反射;
编译时类型安全:只能映射相同名称或带映射标记的属性;
编译时产生错误报告:如果映射不完整(存在未被映射的目标属性)或映射不正确(找
不到合适的映射方法或类型转换)则会在编译时抛出异常。