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

我要开发同款
匿名用户2023年02月27日
91阅读

技术信息

官网地址
https://mapstruct.plus
开源地址
https://gitee.com/linpeilie/mapstruct-plus
授权协议
Apache

作品详情

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方法即可

功能介绍

Mapstruct Plus 是对 Mapstruct 框架的一个增强,只做增强,不做修改,可以通过一个注解,自动生成两个类之间的转换操作,省略了 Mapstruct 定义接口的操作,使 Jav...

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

评论