Mapper(compomentModel=”spring”)实例详解,如何吧几十行代码优化成一行

时间:2022-11-01 19:58:05


1、 需求前提

当一个对象有很多字段时,user1里的几十个字段,全部赋值到user2里的时候,需要写几十个get,set方法,代码量冗余繁杂,相信到大家都遇到过这种业务场景,这种千变一律的copy相信大家都厌烦了,如何把这几十行代码变成1一行代码呢?答案就是mapStruct

本文会教导如何简单使用此注解,并且特殊情况下进阶使用。

2、 简单使用

很简单,定义一个抽象接口,然后在使用的时候注入接口,使用conver方法吧一个对象转成另一个对象,项目builder的时候会自动生成需要的get,set方法,完成我们的对象赋值功能。

3、 使用进阶

(1) 当存在不同字段时候,用mappings注解转换。

(2) 还可以指定枚举java(“TypeEnum.name.getCode()”),注意,此时用的就不是source,用的是expression。如图

Mapper(compomentModel=”spring”)实例详解,如何吧几十行代码优化成一行

Mapper(compomentModel=”spring”)实例详解,如何吧几十行代码优化成一行

(3) 重点:当两个list需要转换并且里面有不同字段时候,需要先写这两个list里存放的对象转换。如图

Mapper(compomentModel=”spring”)实例详解,如何吧几十行代码优化成一行