Java编码辅助工具Mapstruct用法详解

  

  

项目开发中,业务分层会涉及不同类型的豆之间需要相互转换,如阿宝与DTO之间,阿宝与签证官之间等。手动编码setter和getter各个对应属性,会显得臃肿繁琐。通过Mapstruct框架可简单方便地完成这一工作。

  

  

IntelliJ IDEA中安装MapStruct支持插件:文件→设置→插件搜索MapStruct支持安装,同时文件→设置→编译器→注解处理器勾选“启用注释处理”

  

<强> pom.xml中加入依赖

        & lt; dependency>   & lt; groupId> org.mapstruct   & lt; artifactId> mapstruct-jdk8   & lt; version> 1.2.0.Final   & lt; scope> provided   & lt;/dependency>      

<强>构建配置

        & lt; build>   & lt; finalName> $ {project.artifactId} & lt;/finalName>   & lt; plugins>   & lt; plugin>   & lt; groupId> org.apache.maven.plugins   & lt; artifactId> maven-compiler-plugin   & lt; version> 3.7.0   & lt; configuration>   & lt; annotationProcessorPaths>   & lt; path>   & lt; groupId> org.projectlombok   & lt; artifactId> lombok   & lt; version> 1.16.18   & lt;/path>   & lt; path>   & lt; groupId> org.mapstruct   & lt; artifactId> mapstruct-processor   & lt; version> 1.2.0.Final   & lt;/path>   & lt;/annotationProcessorPaths>   & lt;/configuration>   & lt;/plugin>   & lt; plugin>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-maven-plugin   & lt; version> $ {spring-boot.version} & lt;/version>   & lt; executions>   & lt; execution>   & lt; goals>   & lt; goal> repackage   & lt;/goals>   & lt;/execution>   & lt;/executions>   & lt;/plugin>   & lt;/plugins>   & lt;/build>      

  

<强> @Mapper

  

修饰接口或抽象类,如果使用弹簧来管理,则:@Mapper (componentModel=按禾臁?

  

定义对应的Bean转换方法:

        公共抽象XXXVO地图(XXXPO XXXPO);   公共抽象List地图(ListxxxPos);      

如果对应属性名称不一致,则可通过

        @Mappings (value=https://www.yisu.com/zixun/{   @Mapping(目标=癮bc”,源=癱ba”),   @Mapping(目标=癮cc”,源=癱ca qualifiedByName=癿apMethodName2”),//定义转换的方法   @Mapping(目标=" aaa ",常数=" 123 ")//定义常量   })      

<强> @AfterMapping

  

在地图属性完之后执行某些操作

        公共空间afterListMap (@MappingTarget ListxxxVOs)//地图完的结果对象以前      

<强> @BeforeMapping

  

在地图属性之前执行某些操作

        公共空间beforeListMap(对象anySource @MappingTarget ListxxxVOs)      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Java编码辅助工具Mapstruct用法详解