MapStruct

MapStruct 一个 Java 实体映射工具

一个成熟的工程中,尤其是现在的分布式系统中,应用与应用之间,还有单独的应用细分模块之后,DO 一般不会让外部依赖,对象与对象之间的互相转换,就需要有一个专门用来解决转换问题的工具

maven 依赖

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.3.Final</version>
</dependency>

<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.3.Final</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Mapper
public interface UserConvertor {

UserConvertor INSTANCE = Mappers.getMapper( UserConvertor.class);

//属性相同,直接映射
UserDTO toDTO(User user);

//属性不相同时
@Mapping(source = "id",target = "userId",defaultValue = "0L")
UserBo toBo(User user);

// 集合
List<UserBo> toBoList(List<User> userList);
}



//使用
UserDTO dto = UserConvertor.INSTANCE.toDTO(user);
UserBo bo = UserConvertor.INSTANCE.toBo(user);