Mapstruct 简明教程

MapStruct - Overview

MapStruct 是一个插入 Java 编译器的注释处理器。一旦插入,就可以通过 maven、gradle 等命令行工具使用它来处理映射注释,并在编译时创建映射器类。

When Mapping is required?

在多层应用程序中,数据对象用于从数据库提取数据,而 UI 与模型交互。现在,需要将提取到数据模型中的数据映射到要传递给 UI 的模型或 Java bean 中。考虑以下情况。

与数据库相连的实体类。

StudentEntity.java

@Entity
class StudentEntity {
   String id;
   String name;
}

与 UI 相连的模型类。

Student.java

class Student {
   String id;
   String name;
}

How MapStruct Works?

MapStruct 自动化使用注释将数据对象与模型对象进行映射的映射器创建过程。它在编译时创建映射器实现,这有助于开发人员在开发期间找出错误并便于理解。比如 −

StudentMapper.java

@Mapper
class StudentMapper {
   StudentMapper INSTANCE = Mappers.getMapper( StudentMapper.class );
   StudentEntity modelToEntity(Student student);
}

现在,可以使用 StudentMapper.INSTANCE 轻松获取映射对象。

StudentEntity studentEntity = StudentMapper.INSTANCE.modelToEntity(student);