当前位置: 首页 > news >正文

Mapstruct

1. Mapstruct介绍

1. 实体类之间对象映射中间件
2. 实体类相同结构属性自动对象映射
3. 实体类不同结构属性可以手动配置对象映射

2. Mapstruct基本使用

1. 定义一个接口或抽象类加@Mapper(componentModel = “spring”);spring:可以spring框架注入
2. 定义抽象方法加 @Mapping(target = “target”, source = “source”);映射字段相同可以不加@Mapping
3. 抽象方法格式
:目标对象类 抽象方法名称(源对象参数列表) 或void 抽象方法名称(@MappingTarget 目标对象类 目标对象名, 源对象参数列表)
4. mapstruct组件项目编译生成具体实现类

3. Maven依赖

mapstruct和lombok一起使用;mapstruct组件版本1.5.0.Beta1;Lombok依赖版本最好在1.16.16以上,避免出问题

一、Mapstruct组件依赖

mapstruct:包含注解@Mapping
mapstruct-processor:包含注解处理器,生成映射实现类

<!--mapstruct组件-->
<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>1.5.0.Beta1</version>
</dependency>
<!--mapstruct编译组件-->
<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>1.5.0.Beta1</version>
</dependency>

二、Lombok组件依赖

<dependency><groupid>org.projectlombok</groupid><artifactid>lombok</artifactid><version>1.18.12</version>
</dependency>

4.代码案例

一、接口代码案例

@Mapper(componentModel = "spring")
public interface PersonMapper{PersonMapper INSTANCT = Mappers.getMapper(PersonMapper.class);PersonDTO converDTO(Person person);@Mapping(target = "describe", source = "des", defaultValue = "默认值")PersonDTO converDTOMapping(Person person);}

二、抽象类代码案例

@Mapper(componentModel = "spring")
public abstract class AbstractPerson {public static final AbstractPerson INSTANCE = Mappers.getMapper(AbstractPerson.class);@Mapping(source = "describe", target = "des")public abstract PersonVO dtoToVo(PersionDTO persionDTO);// dtoToVo方法之后执行@AfterMappingvoid dtoToVoAfter(@MappingTarget PersonVO personVO, PersionDTO  persionDTO ){// TODO}
}

相关文章:

Mapstruct

1. Mapstruct介绍 1. 实体类之间对象映射中间件 2. 实体类相同结构属性自动对象映射 3. 实体类不同结构属性可以手动配置对象映射 2. Mapstruct基本使用 1. 定义一个接口或抽象类加Mapper(componentModel “spring”)&#xff1b;spring&#xff1a;可以spring框架注入 2. 定义…...

初阶C语言——特别详细地介绍函数

系列文章目录 第一章 “C“浒传——初识C语言&#xff08;更适合初学者体质哦&#xff01;&#xff09; 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 目录 系列文章目录 前言 一、函数是个什么鬼东西&#xff1f; 二、C语…...

pulsar-client-1-2 PulsarClient构造函数

前言 上文说到,PulsarClient通过链式调用构建,而在build()中调用了new PulsarClientImpl(conf),而Producer 本文通过解析构造函数,了解其主要结构。 // 创建PulsarClient PulsarClient client = PulsarClient.builder().serviceUrl("pulsar://localhost:6650")…...

原型链污染是什么

__proto__ 一个Foo类实例化出来的foo对象&#xff0c;可以通过foo.__proto__属性来访问Foo类的原型&#xff0c;也就是说&#xff1a; foo.__proto__ Foo.prototype 对象 构造函数 所以&#xff0c;总结一下&#xff1a; prototype是一个类的属性&#xff0c;所有…...

java之石头迷阵单击游戏、继承、接口、窗体、事件、组件、按钮、图片

文章目录 前言主方法实现类 前言 主方法和实现类在同一个包中。 主方法 package PSortGames;public class Main {public static void main(String[] args) {new MainFrame();} }实现类 package PSortGames;import javax.swing.*; import java.awt.event.KeyEvent; import jav…...

Debian 系列 Linux 的静态 DNS 、gateway 、IP 设置和网络重启

文章目录 DNS 设置DNS 配置文件DNS 配置文件内容 gateway、IP 设置网络适配器配置文件网络适配器配置文件内容 网络重启 各个 Linux 发行版的网络设置有很大不同。根据最近对 Debian 系列&#xff08;含 Debian 12、基于 Debian 12 的Proxmox 8.0-2 以及基于Debian 11 的 openm…...

IP路由基础+OSPF 基础

IP路由 RIB与FIB RIB&#xff1a;Routing Information Base&#xff0c;路由信息库 &#xff0c;路由器的控制平面 FIB&#xff1a;Forwarding Information Base&#xff0c;转发信息库&#xff0c;路由器的数据平面 路由信息库主要是记录直连路由以及协议宣告的路由信息&am…...

window远程连接Linux

Linux启用ssh服务 管理员权限进入root 安装 OpenSSH 服务器软件包 对于 Debian、Ubuntu 或基于这些发行版的系统&#xff0c;可以运行以下命令安装&#xff1a; sudo apt update sudo apt install openssh-server对于基于 Red Hat、CentOS 或 Fedora 的系统&#xff0c;可以…...

MyBatis 查询数据库之二(增、删、改、查操作)

目录 1. 配置打印 MyBatis 执行的SQL 2. 查询操作 2.1 通过用户 ID 查询用户信息、查询所有用户信息 (1) Mapper 接口 (2)UserMapper.xml 查询所有用户的具体实现 SQL (3)进行单元测试 3. 增加操作 3.1 在 mapper&#xff08;interface&#xff09;里面添加增加方法的声…...

unraid docker桥接模式打不开页面,主机模式正常

unraid 80x86版filebrowser&#xff0c;一次掉电后&#xff0c;重启出现权限问题&#xff0c;而且filebrowser的核显驱动不支持amd的VA-API 因为用不上核显驱动&#xff0c;解压缩功能也用不上&#xff0c;官方版本的filebrowser还小巧一些&#xff0c;18m左右 安装的时候总是…...

第七章:进程间通信(IPC)——构成进程间通信的信道方案

系列文章目录 文章目录 系列文章目录前言进程间通信介绍进程间通信目的进程间通信发展进程间通信分类进程通信的原理 管道什么是管道pipe管道通信特点简单设计 命名管道什么是命名管道mkfifostrcmp/strncasecmpunlinkgetch简单设计 共享内存什么是共享内存shmget/ftokipcsshmct…...

部分常用CSS样式

目录 1.字体样式 2.文本样式 3.鼠标样式 cursor 4.背景样式 5.列表样式 6.CSS伪类 7.盒子模型 1.字体样式 font-family 字体类型&#xff1a;隶书” “楷体” font-size 字体大小&#xff1a;像素px font-weight 字体粗细&#xff1a;bold 定义粗体字…...

思科单臂路由、lacp链路聚合、NAT实验

实验拓扑图&#xff1a; 实验目的&#xff1a; 如图所示配置相应IP地址和VLAN&#xff0c;并通过在AR1上配置单臂路由&#xff0c;实现VLAN10和VLAN20的主机能够在VLAN间通信&#xff1b;在SW1和SW2的三条链路实施链路聚合&#xff0c;使用静态LACP模式&#xff0c;使一条链…...

【力扣每日一题】2023.8.5 合并两个有序链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们两个有序的链表&#xff0c;要我们保持升序的状态合并它们。 我们可以马上想要把两个链表都遍历一遍&#xff0c;把所有节点的…...

QT 驱动条码打印机(没有验证过)

这里的打印机是条码打印机&#xff0c;因为第一次接触这种设备&#xff0c;所以买了斑马的GK888t型条码打印机&#xff0c;据说ZPL语言就是斑马的杰作想必支持会好点。实际是&#xff0c;除了ZPL本身外&#xff0c;没有SDK&#xff0c;也没有DDK&#xff0c;所以&#xff0c;一…...

Kafka介绍

目录 1&#xff0c;kafka简单介绍 2&#xff0c;kafka使用场景 3&#xff0c;kafka基本概念 kafka集群 数据冗余 分区的写入 读取分区数据 顺序消费 顺序消费典型的应用场景&#xff1a; 批量消费 提交策略 kafka如何保证高并发 零拷贝技术&#xff08;netty&#…...

Django使用uwsgi+nginx部署,admin没有样式解决办法

Django使用uwsginginx部署,admin没有样式解决办法 如果使用了虚拟环境则修改nginx.conf文件中的/static/路径为你虚拟环境的路径&#xff0c;没有使用虚拟环境则改为你python安装路径下的static server {listen 8008;server_name location; #改为自己的域名&#xff0c;没域名…...

穷举深搜暴搜回溯剪枝(3)

一)字母大小写全排列 784. 字母大小写全排列 - 力扣&#xff08;LeetCode&#xff09; 1)从每一个字符开始进行枚举&#xff0c;如果枚举的是一个数字字符&#xff0c;直接忽视 如果是字母的话&#xff0c;进行选择是变还是不变 2)当进行遍历到叶子结点的时候&#xff0c;直接将…...

Bash 脚本的参数等

bash 的 $值 $0 : 表示当前脚本的名称${BASH_SOURCE[0]} : 表示当前 Bash 脚本文件的路径&#xff0c;可以理解为 $0 的安全版本&#xff0c;防止被修改。$1 : 表示第一个参数&#xff0c;以此类推$ : 表示所有传入脚本的参数$UID : 表示当前用户的 ID 号。如果当前用户是 roo…...

从哪些方面学HTML技术? - 易智编译EaseEditing

学习HTML技术是前端开发的基础&#xff0c;它用于定义网页的结构和内容。以下是学习HTML技术时可以关注的方面&#xff1a; HTML基本语法&#xff1a; 了解HTML标签的基本语法和用法&#xff0c;学习如何创建HTML文档和元素。 常用HTML标签&#xff1a; 学习常用的HTML标签&…...

华尔街量化团队内部文档流出(Perplexity财经数据查询SOP v2.3):含12类高频Query模板+错误码速查表

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity财经数据查询概述 Perplexity 是一款基于大语言模型的智能搜索与知识发现工具&#xff0c;其在财经领域展现出独特优势&#xff1a;它能实时整合权威信源&#xff08;如 SEC、Bloomberg、Reuters、…...

为ubuntu上的自动化脚本寻找稳定大模型api源taotoken的接入方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为 Ubuntu 上的自动化脚本寻找稳定大模型 API 源&#xff1a;Taotoken 的接入方案 在 Ubuntu 环境中运行自动化脚本或智能体时&…...

从‘均分误差’到‘功率打架’:实战中调试微电网逆变器下垂系数的避坑指南

从‘均分误差’到‘功率打架’&#xff1a;实战中调试微电网逆变器下垂系数的避坑指南 微电网系统中&#xff0c;多个分布式电源并联运行时&#xff0c;有功功率分配不均的问题如同暗礁&#xff0c;稍有不慎就会导致系统效率下降甚至设备过载。这种被工程师们戏称为"功率打…...

别再轮询了!在Qt里用HIDAPI实现USB设备通信,试试这个异步读取方案

告别轮询&#xff1a;在Qt中实现高效USB-HID异步通信的现代方案 当开发者需要在Qt应用中与USB-HID设备通信时&#xff0c;传统的轮询方式往往会导致UI卡顿、CPU资源浪费等问题。本文将介绍几种更优雅的异步通信方案&#xff0c;充分利用Qt的事件循环机制&#xff0c;实现高效、…...

手把手教你用85033E校准套件搞定E5071C网分的TDR和S参数测量

手把手教你用85033E校准套件搞定E5071C网分的TDR和S参数测量 在射频和微波测试领域&#xff0c;网络分析仪是工程师不可或缺的工具&#xff0c;而E5071C作为一款经典的中端矢量网络分析仪&#xff0c;广泛应用于通信、雷达、天线等领域的研发和测试。对于刚接触这款设备的新手工…...

TikTok 短视频生成工具哪家好?TikTok 爆款视频复刻,有什么工具推荐

在 TikTok 流量竞争愈发激烈的 2026 年&#xff0c;想要快速起号、稳定爆单&#xff0c;离不开优质短视频量产和爆款视频复刻。不用从零原创创作&#xff0c;借助成熟 AI 工具复刻平台热门爆款&#xff0c;已经成为跨境卖家和内容创作者的主流玩法。 不少人都在纠结两大问题&a…...

Python在气象与海洋中的实践技术应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;并且能够把用其他语言&#xff08;C/C、Fortran…...

伯远生物:告别 “靠天碰运气”,育种进入标记时代

在现代育种科学的演进历程中&#xff0c;从依赖表型选择的传统经验育种&#xff0c;到基于基因型精准筛选的分子育种&#xff0c;技术变革正深刻地重塑着作物改良的路径与效率。分子标记辅助育种技术作为这一变革中的核心技术之一&#xff0c;正以其精准、高效的特点&#xff0…...

为什么顶尖教研团队已弃用传统搜索引擎?Perplexity教育搜索的3个颠覆性能力,今天必须掌握

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么顶尖教研团队已弃用传统搜索引擎&#xff1f; 当清华大学智能教育实验室在2023年构建AI辅助备课系统时&#xff0c;其技术白皮书明确指出&#xff1a;“Google Scholar 和通用搜索引擎的召回率在…...

MAA明日方舟助手:5步配置实现游戏日常全自动化

MAA明日方舟助手&#xff1a;5步配置实现游戏日常全自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.co…...