最简单、最强大的Java Bean转换工具,更加便捷、优雅

最简单、最强大的Java Bean转换工具,更加便捷、优雅
一、项目简介

最简单最强大的Java Bean转换工具
是 Mapstruct 的增强工具,在 Mapstruct 的基础上,实现了自动生成 Mapper 接口的功能,并强化了部分功能,使 Java 类型转换更加便捷、优雅。

二、功能概述

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

特性快速

Java 类之间的转换,仅需要增加一个注解,减少了乏味且容易出错的开发任务

效率

基于注解处理器,所有生成工作都在编译期完成

转换

属性转换基于类中的 getter/setter 方法

兼容

支持JDK8~17、SpringBoot2~3

多类转换

支持单个类配置多个类型转换

Map转对象

更强大的Map转对象功能

三、技术选型快速开始

下面演示如何使用 MapStruct Plus 来映射两个对象。
假设有两个类 UserDto 和 User,分别表示数据层对象和业务层对象:
  • UserDto
  1. public class UserDto {
  2.     private String username;
  3.     private int age;
  4.     private boolean young;
  5.     // getter、setter、toString、equals、hashCode
  6. }

复制代码

  • User
  1. public class User {
  2.     private String username;
  3.     private int age;
  4.     private boolean young;
  5.     // getter、setter、toString、equals、hashCode
  6. }

复制代码

添加依赖

引入
mapstruct-plus-spring-boot-starter 依赖:
  1. <properties>
  2.     <mapstruct-plus.version>1.4.3</mapstruct-plus.version>
  3. </properties>
  4. <dependencies>
  5.     <dependency>
  6.         <groupId>io.github.linpeilie</groupId>
  7.         <artifactId>mapstruct-plus-spring-boot-starter</artifactId>
  8.         <version>${mapstruct-plus.version}</version>
  9.     </dependency>
  10. </dependencies>
  11. <build>
  12.     <plugins>
  13.         <plugin>
  14.             <groupId>org.apache.maven.plugins</groupId>
  15.             <artifactId>maven-compiler-plugin</artifactId>
  16.             <version>3.8.1</version>
  17.             <configuration>
  18.                 <source>1.8</source>
  19.                 <target>1.8</target>
  20.                 <annotationProcessorPaths>
  21.                     <path>
  22.                         <groupId>io.github.linpeilie</groupId>
  23.                         <artifactId>mapstruct-plus-processor</artifactId>
  24.                         <version>${mapstruct-plus.version}</version>
  25.                     </path>
  26.                 </annotationProcessorPaths>
  27.             </configuration>
  28.         </plugin>
  29.     </plugins>
  30. </build>

复制代码

指定对象映射关系

在 User 或者 UserDto 上面增加注解 —— @AutoMapper,并设置 targetType 为对方类。
例如:
  1. @AutoMapper(target = UserDto.class)
  2. public class User {
  3.     // …
  4. }

复制代码

测试

  1. @SpringBootTest
  2. public class QuickStartTest {
  3.     @Autowired
  4.     private Converter converter;
  5.     @Test
  6.     public void test() {
  7.         User user = new User();
  8.         user.setUsername(“jack”);
  9.         user.setAge(23);
  10.         user.setYoung(false);
  11.         UserDto userDto = converter.convert(user, UserDto.class);
  12.         System.out.println(userDto);    // UserDto{username=’jack’, age=23, young=false}
  13.         assert user.getUsername().equals(userDto.getUsername());
  14.         assert user.getAge() == userDto.getAge();
  15.         assert user.isYoung() == userDto.isYoung();
  16.         User newUser = converter.convert(userDto, User.class);
  17.         System.out.println(newUser);    // User{username=’jack’, age=23, young=false}
  18.         assert user.getUsername().equals(newUser.getUsername());
  19.         assert user.getAge() == newUser.getAge();
  20.         assert user.isYoung() == newUser.isYoung();
  21.     }
  22. }

复制代码

小结

引入依赖后,使用步骤非常简单。
  • 给需要转换的类添加 AutoMapper 注解
  • 获取 Converter 实例,调用 convert 方法即可
下载说明:
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » 最简单、最强大的Java Bean转换工具,更加便捷、优雅