MapstructPlus Java 类型转换工具开源项目

我要开发同款
匿名用户2023年02月27日
43阅读
开发技术Java
所属分类开发工具
授权协议Apache

作品详情

MapstructPlus是对Mapstruct框架的一个增强,只做增强,不做修改,可以通过一个注解,自动生成两个类之间的转换操作,省略了Mapstruct定义接口的操作,使Java类型转换更加便捷、优雅。

目标:做最简单、最强大的类型转换工具

链接DocumentGiteeGithub彻底干掉BeanUtils,最优雅的Mapstruct增强工具全新出炉快速开始

下面演示如何使用MapStructPlus来映射两个对象。

假设有两个类UserDto和User,分别表示数据层对象和业务层对象:

UserDtopublicclassUserDto{privateStringusername;privateintage;privatebooleanyoung;//getter、setter、toString、equals、hashCode}UserpublicclassUser{privateStringusername;privateintage;privatebooleanyoung;//getter、setter、toString、equals、hashCode}添加依赖

引入mapstruct-plus-spring-boot-starter依赖:

<properties><mapstruct-plus.version>1.1.3</mapstruct-plus.version></properties><dependencies><dependency><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-spring-boot-starter</artifactId><version>${mapstruct-plus.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><annotationProcessorPaths><path><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-processor</artifactId><version>${mapstruct-plus.version}</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>指定对象映射关系

在User或者UserDto上面增加注解——@AutoMapper,并设置targetType为对方类。

例如:

@AutoMapper(target=UserDto.class)publicclassUser{//...}测试@SpringBootTestpublicclassQuickStartTest{@AutowiredprivateConverterconverter;@Testpublicvoidtest(){Useruser=newUser();user.setUsername("jack");user.setAge(23);user.setYoung(false);UserDtouserDto=converter.convert(user,UserDto.class);System.out.println(userDto);//UserDto{username='jack',age=23,young=false}assertuser.getUsername().equals(userDto.getUsername());assertuser.getAge()==userDto.getAge();assertuser.isYoung()==userDto.isYoung();UsernewUser=converter.convert(userDto,User.class);System.out.println(newUser);//User{username='jack',age=23,young=false}assertuser.getUsername().equals(newUser.getUsername());assertuser.getAge()==newUser.getAge();assertuser.isYoung()==newUser.isYoung();}}小结

引入依赖后,使用MapstructPlus步骤非常简单。

给需要转换的类添加AutoMapper注解获取Converter实例,调用convert方法即可
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论