| 最简单、最强大的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,分别表示数据层对象和业务层对象: 复制代码public class UserDto {
    private String username;
    private int age;
    private boolean young;
    // getter、setter、toString、equals、hashCode
}
 添加依赖复制代码public class User {
    private String username;
    private int age;
    private boolean young;
    // getter、setter、toString、equals、hashCode
}
引入mapstruct-plus-spring-boot-starter 依赖:
 指定对象映射关系复制代码<properties>
    <mapstruct-plus.version>1.4.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)
public class User {
    // ...
}
 
 小结复制代码@SpringBootTest
public class QuickStartTest {
    @Autowired
    private Converter converter;
    @Test
    public void test() {
        User user = new User();
        user.setUsername("jack");
        user.setAge(23);
        user.setYoung(false);
        UserDto userDto = converter.convert(user, UserDto.class);
        System.out.println(userDto);    // UserDto{username='jack', age=23, young=false}
        assert user.getUsername().equals(userDto.getUsername());
        assert user.getAge() == userDto.getAge();
        assert user.isYoung() == userDto.isYoung();
        User newUser = converter.convert(userDto, User.class);
        System.out.println(newUser);    // User{username='jack', age=23, young=false}
        assert user.getUsername().equals(newUser.getUsername());
        assert user.getAge() == newUser.getAge();
        assert user.isYoung() == newUser.isYoung();
    }
}
引入依赖后,使用步骤非常简单。 
  
 游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0 
 提取码下载:
 
 
 
 
 
 
 |