当前位置: 首页 > news >正文

mapstruct context 的使用

mapstruct context 的使用

mapstruct context 是一个比较有意思的功能,可以进行参数传递,比如在列表遍历中

参考实例

  • 代码
@Mapping(source = "response.demoFieldV2", target = "demoField")
@Mapping(source = "response.demoNumberV2", target = "demoNumber")DemoMessage fromResponsev2(DemoMessageResponse response, @Context TypeMethod context);
// 会结合@Context 在fromResponsev2 之后基于context 的参数赋值
@AfterMapping
default void afterMapping(@MappingTarget DemoMessage demoMessage,@Context TypeMethod context
) {
if ( context != null ) {demoMessage.setAction(context.getActionV2());demoMessage.setType( context.getTypeV2() );
}
}
// 此处列表处理部分可以复用fromResponsev2
List<DemoMessage> demos(List<DemoMessageResponse> demoMessageResponses, @Context TypeMethod context);

说明

mapstruct 的一些隐藏功能还是比较多的,context 就是一个比较有意思的功能,有助于bean 转换处理

参考资料

https://mapstruct.org/documentation/stable/reference/html/