带你读《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

相关文章
|
9月前
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(4)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(4)
|
9月前
|
安全
带你读《2022技术人的百宝黑皮书》——如何避免写重复代码:善用抽象和组合(4)
带你读《2022技术人的百宝黑皮书》——如何避免写重复代码:善用抽象和组合(4)
|
9月前
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(8)
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(8)
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(8)
|
9月前
|
网络协议
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(2)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(2)
|
9月前
|
算法
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(3)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(3)
|
9月前
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(6)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(6)
|
9月前
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(5)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(5)
|
9月前
|
SQL 缓存 JSON
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(1)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(1)
119 1
|
9月前
|
安全
带你读《2022技术人的百宝黑皮书》——如何避免写重复代码:善用抽象和组合(2)
带你读《2022技术人的百宝黑皮书》——如何避免写重复代码:善用抽象和组合(2)
带你读《2022技术人的百宝黑皮书》——如何避免写重复代码:善用抽象和组合(2)
|
9月前
|
JSON Java Maven
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(1)
带你读《2022技术人的百宝黑皮书》——MapStruct,降低无用代码的神器(1)