mapstruct中@MapMapping
时间: 2025-01-13 17:19:55 浏览: 62
### MapStruct 中 `@Mapping` 注解的使用
#### 基本概念
`@Mapping` 是 MapStruct 提供的关键注解之一,用于指定源对象和目标对象之间的字段映射关系。当默认命名约定无法满足需求时,可以通过此注解显式定义映射逻辑。
#### 使用场景
对于复杂的数据转换或名称不一致的情况,`@Mapping` 可以帮助精确控制属性间的对应方式[^2]。
#### 示例代码
下面是一个具体的例子展示如何使用 `@Mapping` 进行定制化映射:
```java
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
// 定义接口并标注为MapStruct Mapper
@Mapper
public interface CarMapper {
// 使用 @Mapping 来指明特定字段的映射规则
@Mapping(source = "brand", target = "make") // 将 source 对象中的 brand 字段映射到 target 的 make 字段
@Mapping(source = "modelYear", target = "yearOfManufacture") // 同样地设置其他字段映射
CarDto carToCarDto(Car car);
}
```
在这个例子中,假设有一个 `Car` 类型的对象需要被转化为 `CarDto` 类型,在两者之间存在一些字段名不同步的情形下,就可以借助于上述的方式来进行精准匹配[^1]。
另外还可以通过 `constant`, `defaultValue` 参数给定固定值或者缺省值;也可以利用表达式来实现更复杂的计算过程[^3]。
阅读全文
相关推荐


















