MapStruct 的 @BeanMapping 和 @Mapping 的不同

@MappingMapStruct 的核心注解,用于定义不同名字的属性之间的映射。

JavaDoc:
Configures the mapping of one bean attribute.
配置一个 bean 属性的映射

@BeanMapping 用于控制整个映射方法。你可以通过设置 @BeanMappingNullValueCheckStrategy 使整个方法都生效。

JavaDoc:
Configures the mapping between two bean types
配置两个 bean 类型的映射

MapStruct 忽略 source 中的空值属性

Bean 属性映射中如何满足以下场景:

  1. 给定一个有数据的 Bean 对象,该对象的数据可能从 DB 或其它什么地方获取而来
  2. 从前端传递一个 DTO 对象过来,将该对象的内容更新到 bean 中
  3. 忽略 DTO 中的空属性(NULL)

MapStruct 使用介绍

MapStruct 是一个 Bean 映射工具,通过配置的注解,可以生成 Java 代码进行 Bean 映射。

由于是通过两个 Bean 的信息生成 Java 代码,并通过调用属性的 Getter/Setter 方法来实现的功能,性能上比其它通过反射实现的 Bean 映射工具要高很多,相当于自己手写代码复制对象。

本文主要介绍 MapStruct 的几种对象映射场景,方便使用时选用。