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 转换处理
浙公网安备 33010602011771号