文章目录
- 一、MapStruct
- 1、介绍
- 2、原理
- 3、使用
- 4、问题处理
- (1)IDEA编译报错:NullPointerException
一、MapStruct
1、介绍
MapStruct是一个实体类属性映射工具,通过注解的方式实现将一个实体类的属性值映射到另外一个实体类中。在开发的过程中我们只需要定义实体类属性映射的接口,在编译的过程中会生成具体的属性映射实体类。
该图展示的是在项目中使用mapstruct定义了类型转换接口,编译后生成了该接口的具体实现类。
2、原理
mapstruct是基于JDK规范JSR 269实现的。
3、使用
添加maven依赖:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
<scope>provided</scope>
</dependency>
4、问题处理
(1)IDEA编译报错:NullPointerException
java: Internal error in the mapping processor: java.lang.NullPointerException
解决方法1:
Setting -->Build,Execution,Deployment -->Compiler -->User-local build加上:
-Djps.track.ap.dependencies=false
解决方法2:升级版本
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
<scope>provided</scope>
</dependency>