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

mapstruct学习笔记-pojo之间的转换

1、前言

mapstruct中常用注解如@Mapping,@AfterMapping,@BeanMapping等的使用,通过案例说明各式各样的业务pojo对象之间如何借助mapstruct完成相互之间的转换,减少代码量的同时也能突出业务逻辑流程,让你的代码里写起来更有规范可言。

2、简介

Reference Guide – MapStruct

3、使用场景

主要用于pojo之间的转换。

不同的convert方案:

4、mapstruct使用 

4.1 不使用mapstruct的缺点

  • 多与杂的代码与业务代码耦合,可读性差
  • 重复的劳动

cardto业务对象:

partdto:

driverdto:

 carvo:

drivervo:

partvo:

测试类:

 

 

 

4.2 mapstuct使用方法

  • 引入依赖
  • 新建抽象类或者接口并标注@mapper注解
  • 写转换方法,方法名任意(eg. dto2vo
  • 获取对象并使用
4.2.1 引入依赖

4.2.2 新建抽象类或者接口并标注@mapper注解

4.2.3 car转化pojo案例

CarConvert抽象类:

测试类:

4.3 默认的映射规则

4.4 @Mappings和@Mapping

需求1:处理成保留2位小数

代码实现:通过@mapping实现

测试类:

需求2:publishDate处理格式

代码:

需求3 vo中的color不从dto中映射:设置ignore

 需求4: 当属性是引用类型时,如何映射?如driverdto

代码:

 结果:

4.5 Aftermapping和mappingtarget

 通过mapstruct处理不了的或者不好处理的场景,我们自己自定义处理。

需求:处理vo中hasPart的值

抽象类增加方法:

结果:

4.5 批量转换

需求:list ---> list

冗余实现:

mapstruct实现:

测试类:

 

4.6 @BeanMapping

 

配置一个id测试:

 

4.7 @InheritConfiguration

4.8 @InheritInverseConfiguration

4.9 与spring结合使用


http://www.kler.cn/a/274350.html

相关文章:

  • 「配置应用的可见性」功能使用教程
  • 如何重新设置VSCode的密钥环密码?
  • 海外外卖APP开发新方向:基于同城外卖系统源码的多元化解决方案
  • PostgreSQL技术内幕21:SysLogger日志收集器的工作原理
  • IDEA中解决Edit Configurations中没有tomcat Server选项的问题
  • onlyoffice连接器 二次开发 合同等制式模板化技术开发方案【三】
  • 73_Pandas获取分位数/百分位数
  • 1-postgresql数据库高可用脚本详解
  • 网站引用图片但它域名被墙了或者它有防盗链,我们想引用但又不能显示,本文附详细的解决方案非常简单!
  • rviz上不显示机器人模型(模型只有白色)
  • 【Numpy】(2)numpy对象和random模块
  • openEuler 欧拉系统nginx正向代理 http https —— 筑梦之路
  • 【数据结构取经之路】栈
  • 使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症
  • nginx实现多个域名和集群
  • 鸿蒙实战开发:【FaultLoggerd组件】讲解
  • 英伟达深夜放王炸|字节跳动游戏之路波折不断|文旅短剧风口将至|25岁QQ魅力不减,5亿人在用|云计算市场疯长152%|电商巨头齐瞄向富足悠闲银发族
  • 刷题日记:面试经典 150 题 DAY6
  • SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测
  • php前端和java后端数据调用流程
  • F-logic DataCube3 任意文件上传漏洞复现(CVE-2024-25832)
  • 【C++】用红黑树模拟实现set、map
  • 学习笔记--强化学习(1)
  • 使用jQuery的autocomplete实现数据查询一次,联想自动补全
  • Apache Dolphinscheduler - 无需重启 Master-Server 停止疯狂刷日志解决方案
  • Linux下安装Android Studio及创建桌面快捷方式