bean转换(高性能)-Mapstruct

它会在启动时会自动生成同名复制,生成一个临时文件,避免bean拷贝时使用反射带来的性能损害,且字段检查也是在编译时完成的,基本上就是运行时无性能损耗
评语:性能优良+功能强大,基本上你能想到的bean/多bean操作都能实现

快速使用

1.导入依赖

		<!--这里我用的1.5.3.Final--><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${mapstruct.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${mapstruct.version}</version></dependency>

避免报错(java: Internal error in the mapping processor: java.lang.NullPointerExceptio

)
原因 :这个一般是编译器自检问题,应该是lombok在mapstruct之前加载导致的
线上的:线上一般没问题,一般是用maven编译的,只要你本地使用maven编译没问题,那线上就没问题,不会使用编译器的
解决方法: Setting -->Build,Execution,Deployment -->Compiler 加上参数: -Djps.track.ap.dependencies=false

java: Internal error in the mapping processor: java.lang.NullPointerExceptio

方法一:spring模式

1.定义

@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.IGNORE, builder = @Builder(disableBuilder = true))
public interface UserMapper {Demo2 toDemo2(Demo demo);
}

2.使用

@RestController
@RequestMapping("/test")
public class TestController {@Autowiredprivate UserConver userConver;@RequestMapping("/t1")@Sensitivepublic void test() {Demo demo = new Demo(1,2,"s1",0);Demo2 demo2 = userConver.toDemo2(demo);}
}

方法二:通用(默认模式)

1.定义conver

@Mapper(componentModel = "default", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.IGNORE, builder = @Builder(disableBuilder = true))
public interface DemoConverter {DemoConverter INSTANCE = Mappers.getMapper(DemoConverter.class);//单个bean转换(结合注解大全使用)Demo req2Entity(DemoReq req);//注意:要使用集合转换必须先声明单个bean转换,即上面这个方法List<Demo >req2Entity(List<DemoReq> list);
}

2.使用

 public void agree(DemoReqreq) {Demo entity = DemoConverter .INSTANCE.req2Entity(req);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

df 计算同一列时间差(差分pandas.diff())

df pd.DataFrame({a: [1, 2, 3, 4, 5, 6],b: [1, 1, 2, 3, 5, 8],c: [1, 4, 9, 16, 25, 36]}) df.diff()# 计算某一列差值 df.c.diff(1)https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.diff.html

C语言多线程基础(pthread)

1.线程和进程的概念 线程&#xff1a;进程中的一个实体&#xff0c;是CPU调度和分派的基本单位。可以与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程&#xff0c;同一进程中的多个线程之间可以并发执行&#xff0c;线程在运行中呈现间断…

Python 将列表数据写入文件(txt, csv,excel)

写入txt文件 def text_save(filename, data):#filename为写入txt文件的路径&#xff0c;data为要写入数据列表. file open(filename,a) for i in range(len(data)): s str(data[i]).replace([,).replace(],)#去除[],这两行按数据不同&#xff0c;可以选择 s s.replace(&quo…

NVS入门(基于ESP-IDF)

主要参考资料&#xff1a; B站Up主 孤独的二进制《ESP32 存储篇 NVS 非易失性存储库》 ESP-IDF开发指南>API参考>非易失性存储: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-reference/storage/nvs_flash.html 目录 概述NVS使用&#xff08;以W…

一键制作底片效果,让视频复古感倍增!

你是否厌倦了千篇一律的视频效果&#xff0c;想要尝试一些与众不同的视觉体验&#xff1f;是否想要让你的视频散发出一种复古、怀旧的气息&#xff1f;现在&#xff0c;有了我们的底片效果制作工具&#xff0c;这些愿望全部实现 首先第一步&#xff0c;我们要进入视频剪辑高手…

16.Linux基本使用和程序部署

文章目录 1.Linux 背景知识1.1Linux 是什么1.2Linux 发行版1.3关于 Linux 我们学习什么 2.Linux 环境搭建2.1环境搭建方式2.2使用云服务器2.3使用终端软件连接到 Linux2.3.1什么是终端软件2.3.2下载安装 XShell2.3.3使用 XShell 登陆主机 3.Linux 常用命令3.1 ls3.2 pwd3.3 cd3…

关于cdn资源失效的问题,一个月了都解决不了,七牛云技术这么差的吗?

起因 最近登录我的gpt镜像网站后&#xff0c;发现关于面具的图片资源都失效了 CoCo-AI 于是紧急使用 F12 排查原因 发现所有图片拿出来都已经无法访问了。看来是资源出了问题 在网上一番搜索后发现是 cdn.staticfile.org 失效导致的&#xff0c;而该静态资源属于七牛云&#…

用模方做单体化连接草图大师时,不能联动,这个是什么原因?

答&#xff1a;需要2019版本Sketch Up&#xff0c;然后添加好对应的联动插件。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff0c;支持一键自动提取房屋…

大数据开发之Hive(查询、分区表和分桶表、函数)

第 6 章&#xff1a;查询 6.1 基本语法及执行顺序 1、查询语句语法 select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [ORDER BY col_list] [CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]] [LIMIT n…

htmx 只是另一个 JavaScript 框架吗?老外都吵上了

对 htmx 最常见的批评之一通常来自第一次听说它的人&#xff0c;如下所示&#xff1a; 你抱怨现代前端框架的复杂性&#xff0c;但你的解决方案只是另一个复杂的前端框架。 这是一个很好的反对意见&#xff01;对于你引入到项目中的任何第三方 (3P) 代码&#xff0c;你都有权提…

HarmonyOS 开发基础(八)Row和Column

HarmonyOS 开发基础&#xff08;八&#xff09;Row和Column 一、Column 容器 1、容器说明&#xff1a; 纵向容器主轴方向&#xff1a;从上到下纵向交叉轴方向&#xff1a;从左到右横向 2、容器属性&#xff1a; justifyContent&#xff1a;设置子元素在主轴方向的对齐格式…

实例分割论文精读:Mask R-CNN

1.摘要 本文提出了一种概念简单、灵活、通用的实例分割方法&#xff0c;该方法在有效地检测图像中的物体同时&#xff0c;为每个物体实例生成一个实例分割模板&#xff0c;添加了一个分支&#xff0c;用于预测一个对象遮罩&#xff0c;与现有的分支并行&#xff0c;用于边界框…

零知识证明的最新发展和应用

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 当企业收集大量客户数据去审查、改进产品和服务以及将数据资产货币化时&#xff0c;他们容易受到网络攻击威胁&#xff0c;造成数…

RC4加解密源码

本文介绍RC4加解密源码。 RC4&#xff08;来自Rivest Cipher 4的缩写&#xff09;是一种流加密算法&#xff0c;密钥长度可变。它加解密使用相同的密钥&#xff0c;因此也属于对称加密算法。RC4具有加解密速度快&#xff0c;算法简单等优点&#xff0c;在算力不高场合&#xf…

C++输入与输出

C 中的输入与输出主要通过标准输入输出流实现。以下是一些基本示例代码&#xff0c;演示了如何使用 cin 来输入变量的值&#xff0c;并使用 cout 来输出变量的值。 输入变量的值 #include <iostream> using namespace std;int main() {int number;cout << "…

用重建大师时,在主服务器建了一个快捷方式,给局域网其他电脑开了权限,其他电脑能正常访问主服务器数据吗?

答&#xff1a;可以的&#xff0c;重建大师支持集群方式。数据放在服务器文件夹das&#xff0c;在主服务器读取数据建立了一个快捷方式&#xff0c;这个快捷方式给局域网其他电脑开了权限&#xff0c;其他电脑是可以通过快捷方式正常访问主服务器数据的。 重建大师是一款专为超…

昇腾910b部署Chatglm3-6b进行流式输出【pytorch框架】NPU推理

文章目录 准备阶段避坑阶段添加代码结果展示 准备阶段 配套软件包Ascend-cann-toolkit和Ascend-cann-nnae适配昇腾的Pytorch适配昇腾的Torchvision Adapter下载ChatGLM3代码下载chatglm3-6b模型&#xff0c;或在modelscope里下载 避坑阶段 每个人的服务器都不一样&#xff0…

Pixart PAR2861 蓝牙 keyboard 开发笔记

Pixart PAR2861 是一款采用32 bits ARM Cortex-M0 低功耗、高效能 2.4GHz RF 的 SoC。 该 SoC 整合了高效能的 2.4GHz RF 收发器、硬体Keyscan、硬体按键防弹跳、SPI、I2C、PWM LED、ADC、UART等。内建 DC/DC 转换器和 LDO 为独立 HID 应用提供完整的低功耗 SoC 解决方案。 1.…

2023年网络安全事件处罚盘点,文件销毁 硬盘销毁 物料销毁

《中华人民共和国网络安全法》是我国第一部全面规范网络空间安全管理方面问题的基础性法律&#xff0c;是我国网络空间法治建设的重要里程碑&#xff0c;《中华人民共和国网络安全法》从2013年下半年提上日程&#xff0c;到2016年年底颁布&#xff0c;自2017年6月1日起施行&…

已解决java.lang.ReflectiveOperationException异常的正确解决方法,亲测有效!!!

已解决java.lang.ReflectiveOperationException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 文章目录 问题分析 报错原因 解决思路 解决方法 总结 问题分析 ReflectiveOperationException是Java反射操作中可能抛出的多种异常的父类。 …