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/

posted on 2026-02-05 08:00  荣锋亮  阅读(0)  评论(0)    收藏  举报

导航