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

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

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


基础转换

字段完全一致

 

image.png待转换的类

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

 

 

image.png转换目标类

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

 

 

image.png转换器


注意:Mapper是Mapstruct的注解。

@Mapper
public abstract class Converter {
public static Converter INSTANT = Mappers.getMapper(Converter.class);
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, userNick=Nick)

 

 

一一对应的字段名不一致、类型不一致

 


image.png待转换的类

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

 

 

image.png转换目标类

  @Data
  public class Target {
  private Long id;
  private Integer age;
  private String nick;
 }

 

 

转换目标类修改了age字段的类型,和userNick字段的名字,这两个类的字段仍然是一一对应的。

 

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


相关文章
|
存储 设计模式 算法
DDD之于业务支撑的意义
DDD之于业务支撑的意义
393 0
|
设计模式 Java
好好的“代码优化”是怎么一步步变成“过度设计”的(上)
好好的“代码优化”是怎么一步步变成“过度设计”的(上)
534 4
|
数据采集 数据挖掘 UED
物流产品体验诊断与优化
物流产品体验诊断与优化
962 1
|
新零售 前端开发 JavaScript
盒马跨端设计系统 ReX Design For OS
6 个月前,在 D2 前端技术论上我们向社区分享了《盒马中后台跨端方案》,详细介绍了我们在基于盒马实体零售数字化业务场景中,面向盒马营运数字化系统构建的跨端设计系统——ReX Design For OS。6 个月来,在开发资源极度紧张的状态下,我们持续建设和打磨,今天我们很高兴的告诉大家我们已经将项目的主要代码开源到了 Github,并发布了 beta 版本。
盒马跨端设计系统 ReX Design For OS
|
存储 架构师 测试技术
架构之道:人人都是架构师(2)
每个业务系统的开发者都应该具备一定的架构师素养,架构师的重要职责不仅仅是做决策,更重要的是提升团队的整体能力。一个好的架构师应该聚焦于业务和系统,定义问题和结果,设计系统、模块和代码,同时也需要解决跨域问题,确定团队间的边界,制定规范,统一语言,并创建一个让每个人都能成长为架构师的环境,以促进团队的敏捷性。本文旨在探讨如何培养架构思维,并阐述了架构师的职责、能力模型、方法论,以及如何成为架构师。
457 10
|
存储 运维 架构师
架构之道:人人都是架构师(1)
架构之道:人人都是架构师
645 8
|
消息中间件 供应链 测试技术
图解 DDD,这一篇总结太全面了!
DDD领域驱动是非常热的架构设计,微服务也有大量涉及,本文详细解析领域驱动设计(DDD),涵盖DDD原理、实践步骤及核心概念等,帮助更好地管理复杂业务逻辑。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
图解 DDD,这一篇总结太全面了!
|
开发框架 Java 数据库连接
这可能是你见过hibernate-validator最全国际化方案(上)
为了实现hibernate-validator国际化差点要了老命,最近在研究hibernate-validator以及国际化,在墙里墙外找了很多很久,可能是因为版本的更新迭代,找到的资料基本都用不了了。自己折腾了半天,终于琢磨出来了,特此记录。
2023 0
这可能是你见过hibernate-validator最全国际化方案(上)
|
关系型数据库 测试技术 调度
《领域驱动设计》:从领域视角深入仓储(Repository)的设计和实现
本文首先从聚合根的生命周期和生存环境出发,引出了Repository概念,并说明其本质是管理中间过程的集合容器(2.1节); 根据集合容器的概念,在领域角度去挖掘出Repository的职责,并提出了仓储实体转移模式用作对不同仓储实现的对比标准(2.2节); 然后从实现例子出发,介绍了一种纯内存实现的仓储,用作体现仓储最佳实现(3.1节); 继续从实现例子出发,介绍了关系型数据库下的仓储特点,并描述面向持久化的仓储的特点(3.4节);
|
数据库 测试技术 Java
阿里技术专家详解DDD系列 第二弹 - 应用架构
应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD架构。
59295 25
阿里技术专家详解DDD系列 第二弹 - 应用架构