MapStruct:BeanMapping 和 Mapping 的区别

MapStruct: Difference between BeanMapping and Mapping

我一直在浏览 MapStruct 的文档,似乎无法弄清楚何时应该使用注释 @BeanMapping。对于大多数情况,文档似乎也广泛使用 @Mapping 。有人可以解释 @BeanMapping 注释的用法吗?也许举个例子?

@Mapping注解是MapStruct的核心注解之一。它允许您定义名称不同的属性之间的映射。来自 JavaDoc:

Configures the mapping of one bean attribute.

@BeanMapping 注释用于控制整个映射方法的行为。您可以使用 @BeanMapping 为整个映射方法设置 NullValueCheckStrategy。来自 JavaDoc:

Configures the mapping between two bean types

简单的@BeanMapping让你自定义映射过程。

示例 1:@BeanMapping(ignoreByDefault = true) 表示不会进行自动映射,因此必须手动定义所有映射。

示例2:@BeanMapping(ignoreUnmappedSourceProperties = {"title"})表示在映射过程中忽略title字段