带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(4)

简介: 带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(4)

带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(3)https://developer.aliyun.com/article/1339761?groupCode=taobaotech

image.png转换器

@Mapper
public abstract class Converter {
public static Converter INSTANT = Mappers.getMapper(Converter.class);
// 字段类型映射修改
@Mapping(source = "age", target = "age", resultType = Integer.class)
// 字段名映射修改
@Mapping(source = "userNick", target = "nick") public abstract Target convert(Source source);
}

 


image.png使用示例

  final Source source = Source.builder() 2    .id(1L)
  .age(18L)
.userNick("Nick")
.build();
final Target target = Converter.INSTANT.convert(source);
System.out.println(target);

 

输出:

Target(id=1, age=18, nick=Nick)

 

image.png源码解析

《告别BeanUtils,Mapstruct入门到精通》

 

高级转换

 

我们在业务代码中经常会用到以下转换方法,因此将示例代码写在下面。

 

一对多字段互转

 

在业务代码中,常出现需要将一个类中的一些字段转换为另一个类的JSON字段的情况,以下是一个简单的例子:

 

 

 

image.png互相转换的类 VO:

前端渲染内容。

 

  @Data
  @Builder
  public class VO {
  private Long id;
  private Long age;
  private String userNick;
 }

DTO:传输内容,其中仅包含id,其余字段均存放在extra字段中。

 

  @Data
  public class DTO {
  private Long id;
private String extra;
 }

 

带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(5)https://developer.aliyun.com/article/1339759?groupCode=taobaotech

相关文章
|
数据采集 数据挖掘 UED
物流产品体验诊断与优化
物流产品体验诊断与优化
1004 1
|
存储 设计模式 算法
DDD之于业务支撑的意义
DDD之于业务支撑的意义
438 0
|
新零售 前端开发 JavaScript
盒马跨端设计系统 ReX Design For OS
6 个月前,在 D2 前端技术论上我们向社区分享了《盒马中后台跨端方案》,详细介绍了我们在基于盒马实体零售数字化业务场景中,面向盒马营运数字化系统构建的跨端设计系统——ReX Design For OS。6 个月来,在开发资源极度紧张的状态下,我们持续建设和打磨,今天我们很高兴的告诉大家我们已经将项目的主要代码开源到了 Github,并发布了 beta 版本。
盒马跨端设计系统 ReX Design For OS
|
SQL 存储 分布式计算
ODPS开发大全:入门篇(3)
ODPS开发大全:入门篇
1007 19
|
消息中间件 供应链 测试技术
图解 DDD,这一篇总结太全面了!
DDD领域驱动是非常热的架构设计,微服务也有大量涉及,本文详细解析领域驱动设计(DDD),涵盖DDD原理、实践步骤及核心概念等,帮助更好地管理复杂业务逻辑。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
图解 DDD,这一篇总结太全面了!
|
存储 架构师 测试技术
架构之道:人人都是架构师(2)
每个业务系统的开发者都应该具备一定的架构师素养,架构师的重要职责不仅仅是做决策,更重要的是提升团队的整体能力。一个好的架构师应该聚焦于业务和系统,定义问题和结果,设计系统、模块和代码,同时也需要解决跨域问题,确定团队间的边界,制定规范,统一语言,并创建一个让每个人都能成长为架构师的环境,以促进团队的敏捷性。本文旨在探讨如何培养架构思维,并阐述了架构师的职责、能力模型、方法论,以及如何成为架构师。
500 10
|
存储 运维 架构师
架构之道:人人都是架构师(1)
架构之道:人人都是架构师
717 8
|
机器学习/深度学习 数据采集 算法
GEE机器学习——利用支持向量机SVM进行土地分类和精度评定
GEE机器学习——利用支持向量机SVM进行土地分类和精度评定
865 0
|
Java Spring
Spring Boot Admin 自定义健康检查
Spring Boot Admin 自定义健康检查
271 0
|
关系型数据库 测试技术 调度
《领域驱动设计》:从领域视角深入仓储(Repository)的设计和实现
本文首先从聚合根的生命周期和生存环境出发,引出了Repository概念,并说明其本质是管理中间过程的集合容器(2.1节); 根据集合容器的概念,在领域角度去挖掘出Repository的职责,并提出了仓储实体转移模式用作对不同仓储实现的对比标准(2.2节); 然后从实现例子出发,介绍了一种纯内存实现的仓储,用作体现仓储最佳实现(3.1节); 继续从实现例子出发,介绍了关系型数据库下的仓储特点,并描述面向持久化的仓储的特点(3.4节);

热门文章

最新文章