MapStruct - 概述


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

什么时候需要映射?

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

与数据库连接的实体类。

学生实体.java

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

与 UI 连接的模型类。

学生.java

class Student {
   String id;
   String name;
}

MapStruct 是如何工作的?

MapStruct 自动执行创建映射器的过程,以使用注释将数据对象与模型对象进行映射。它在编译时创建一个映射器实现,帮助开发人员找出开发过程中的错误,并且 make 很容易理解。例如 -

StudentMapper.java

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

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

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