项目开发中,业务分层会涉及不同类型的豆之间需要相互转换,如阿宝与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地图(List xxxPos);
如果对应属性名称不一致,则可通过
@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用法详解