Java编码辅助工具Mapstruct用法详解
前言
项目开发中,业务分层会涉及不同类型的Bean之间需要相互转换,如PO与DTO之间,PO与VO之间等。手动编码setter/getter各个对应属性,会显得臃肿繁琐。通过Mapstruct框架可简单方便地完成这一工作。
如何引入:
IntelliJIDEA中安装MapStructSupport插件:File->Settings->Plugins搜索MapStructsupport安装,同时File->Settings->Compiler->AnnotationProcessors勾选“Enableannotationprocessing”
pom.xml中加入依赖
org.mapstruct mapstruct-jdk8 1.2.0.Final provided
build配置
${project.artifactId} org.apache.maven.plugins maven-compiler-plugin 3.7.0 org.projectlombok lombok 1.16.18 org.mapstruct mapstruct-processor 1.2.0.Final org.springframework.boot spring-boot-maven-plugin ${spring-boot.version} repackage
常用注解使用
@Mapper
修饰接口或抽象类,如果使用spring来管理,则:@Mapper(componentModel="spring")
定义对应的Bean转换方法:
publicabstractXXXVOmap(XXXPOxxxPo); publicabstractListmap(List xxxPos);
如果对应属性名称不一致,则可通过
@Mappings(value={ @Mapping(target="abc",source="cba"), @Mapping(target="acc",source="cca",qualifiedByName="mapMethodName2"),//定义转换的方法 @Mapping(target="aaa",constant="123")//定义常量 })
@AfterMapping
在map属性完之后执行某些操作
publicvoidafterListMap(@MappingTargetListxxxVOs)//map完的结果对象
@BeforeMapping
在map属性之前执行某些操作
publicvoidbeforeListMap(ObjectanySource,@MappingTargetListxxxVOs)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。