MapstructPlus是对Mapstruct框架的一个增强,只做增强,不做修改,可以通过一个注解,自动生成两个类之间的转换操作,省略了Mapstruct定义接口的操作,使Java类型转换更加便捷、优雅。
目标:做最简单、最强大的类型转换工具
链接DocumetGiteeGithub彻底干掉BeaUtils,最优雅的Mapstruct增强工具全新出炉快速开始下面演示如何使用MapStructPlus来映射两个对象。
假设有两个类UserDto和User,分别表示数据层对象和业务层对象:
UserDtopublicclassUserDto{privateStriguserame;privateitage;privatebooleayoug;//getter、setter、toStrig、equals、hashCode}UserpublicclassUser{privateStriguserame;privateitage;privatebooleayoug;//getter、setter、toStrig、equals、hashCode}添加依赖引入mapstruct-plus-sprig-boot-starter依赖:
<properties><mapstruct-plus.versio>1.1.3</mapstruct-plus.versio></properties><depedecies><depedecy><groupId>io.github.lipeilie</groupId><artifactId>mapstruct-plus-sprig-boot-starter</artifactId><versio>${mapstruct-plus.versio}</versio></depedecy></depedecies><build><plugis><plugi><groupId>org.apache.mave.plugis</groupId><artifactId>mave-compiler-plugi</artifactId><versio>3.8.1</versio><cofiguratio><source>1.8</source><target>1.8</target><aotatioProcessorPaths><path><groupId>io.github.lipeilie</groupId><artifactId>mapstruct-plus-processor</artifactId><versio>${mapstruct-plus.versio}</versio></path></aotatioProcessorPaths></cofiguratio></plugi></plugis></build>指定对象映射关系在User或者UserDto上面增加注解——@AutoMapper,并设置targetType为对方类。
例如:
@AutoMapper(target=UserDto.class)publicclassUser{//...}测试@SprigBootTestpublicclassQuickStartTest{@AutowiredprivateCovertercoverter;@Testpublicvoidtest(){Useruser=ewUser();user.setUserame("jack");user.setAge(23);user.setYoug(false);UserDtouserDto=coverter.covert(user,UserDto.class);System.out.pritl(userDto);//UserDto{userame='jack',age=23,youg=false}assertuser.getUserame().equals(userDto.getUserame());assertuser.getAge()==userDto.getAge();assertuser.isYoug()==userDto.isYoug();UserewUser=coverter.covert(userDto,User.class);System.out.pritl(ewUser);//User{userame='jack',age=23,youg=false}assertuser.getUserame().equals(ewUser.getUserame());assertuser.getAge()==ewUser.getAge();assertuser.isYoug()==ewUser.isYoug();}}小结引入依赖后,使用MapstructPlus步骤非常简单。
给需要转换的类添加AutoMapper注解获取Coverter实例,调用covert方法即可
评论