MapstructPlus的快速集成

news/2025/1/15 16:50:31/

https://www.mapstruct.plus/icon-default.png?t=N5K3https://www.mapstruct.plus/

# 博主技术栈如下
springboot:2.4.5
lombok:1.8.20
mapstruct-plus:1.3.4
knife4j:4.0.0

目录

一、添加依赖(谨防依赖冲突)

二、如果依赖下不下来,要在maven的setting文件中加入腾讯云的镜像

三、 实战测试(将User转成UserDto)


 

一、添加依赖(谨防依赖冲突)

    <properties><java.version>1.8</java.version><mapstruct-plus.version>1.3.4</mapstruct-plus.version></properties>
        <dependency><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-spring-boot-starter</artifactId><version>${mapstruct-plus.version}</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.0.0</version><exclusions><exclusion><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></exclusion></exclusions></dependency>
<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>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></path><path><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-processor</artifactId><version>${mapstruct-plus.version}</version></path><path><groupId>org.projectlombok</groupId><artifactId>lombok-mapstruct-binding</artifactId><version>0.2.0</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>

二、如果依赖下不下来,要在maven的setting文件中加入腾讯云的镜像

<mirror><id>nexus-tencentyun</id><mirrorOf>*</mirrorOf><name>Nexus tencentyun</name><url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror> 

三、 实战测试(将User转成UserDto)

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;@Data
// 只需在User类上加上注解即可
@AutoMapper(target = UserDto.class)
public class User {private String username;private int age;private boolean young;
}
import lombok.Data;@Data
public class UserDto {private String username;private int age;private boolean young;
}
import com.ciih.penetration.test.User;
import com.ciih.penetration.test.UserDto;
import io.github.linpeilie.Converter;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
public class QuickStartTest {@Autowiredprivate Converter converter;@Testpublic 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();}}


http://www.ppmy.cn/news/723548.html

相关文章

转-云计算、大数据和人工智能的科普类文件

作者&#xff1a; 刘超 www.cnblogs.com/popsuper1982/p/8505203.html 原标题&#xff1a;不是技术也能看懂云计算&#xff0c;大数据&#xff0c;人工智能 我今天要讲这三个话题&#xff0c;一个是云计算&#xff0c;一个大数据&#xff0c;一个人工智能&#xff0c;我为什么要…

通俗易懂的讲:云计算、大数据和人工智能

文章转自&#xff1a; 刘超的通俗云计算 https://www.cnblogs.com/popsuper1982/p/8505203.html 我今天要讲这三个话题&#xff0c;一个是云计算&#xff0c;一个大数据&#xff0c;一个人工智能&#xff0c;我为什么要讲这三个东西呢&#xff1f;因为这三个东西现在非常非常的…

浅谈云计算,大数据和人工智能

原文链接&#xff1a; https://www.cnblogs.com/popsuper1982/p/8505203.html 我今天要讲这三个话题&#xff0c;一个是云计算&#xff0c;一个大数据&#xff0c;一个人工智能&#xff0c;我为什么要讲这三个东西呢&#xff1f;因为这三个东西现在非常非常的火&#xff0c;它们…

周鸿祎力荐|纽约客16000字重磅刊文:区块链是回归互联网本质的唯一希望

奇虎360创始人周鸿祎曾在朋友圈表示&#xff1a;迄今我认为说的最深入浅出最明明白白的一篇文章&#xff0c;没有大道理&#xff0c;没有空洞的口号&#xff0c;没有吓唬人的概念&#xff0c;这才是学习区块链技术最需要的基础。 来源&#xff1a;《纽约客》杂志 本文首发于机器…

jmeter性能测试重要指标以及性能结果分析

目录 一、Aggregate Report 是jmeter常用的一个 Listener&#xff0c;中文被翻译为“聚合报告 二、描述性统计与性能结果分析 总结&#xff1a; 一、Aggregate Report 是jmeter常用的一个 Listener&#xff0c;中文被翻译为“聚合报告 如果大家都是web应用的性能测试例如只…

区块链是回归互联网本来意义的唯一希望

区块链就是未来&#xff0c;也是一种回到互联网本来意义的方式。 这组词序并没有任何意义&#xff0c;真正让它们有价值的地方在于&#xff0c;这个词序是由一个被称为 MetaMask 的软件专门为我一个人生产的。 用密码学&#xff08;cryptography&#xff09;术语表达&#xff0…

云计算与人工智能

来自&#xff1a; cnblogs.com/popsuper1982/p/8505203.html 我今天要讲这三个话题&#xff0c;一个是云计算&#xff0c;一个大数据&#xff0c;一个人工智能&#xff0c;我为什么要讲这三个东西呢&#xff1f;因为这三个东西现在非常非常的火&#xff0c;它们之间好像互相有关…

对象存储 Object Storage

目录 概述 历史 起源 发展 架构 对存储的抽象 在对象内包含富定制化元数据 面向程序的数据管理 实现 云存储 基于对象的文件系统 对象存储系统 混合存储 “自藏的”对象存储 虚拟对象存储 基于对象的存储设备 市场采纳情况 市场分析 标准 基于对象的存储设…