评语:性能优良+功能强大,基本上你能想到的bean/多bean操作都能实现
- MapStruct-注解汇总大全
- MapStruct映射器的高级用法
- MapStruct常用案例
- MapStruct快速使用模板
3.0 依赖
<!--这里我用的1.5.3.Final-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
3.1 Converter
@Mapper(componentModel = "default", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.IGNORE, builder = @Builder(disableBuilder = true))
public interface DemoConverter {
DemoConverter INSTANCE = Mappers.getMapper(DemoConverter.class);
//单个bean转换(结合注解大全使用)
Demo req2Entity(DemoReq req);
//注意:要使用集合转换必须先声明单个bean转换,即上面这个方法
List<Demo >req2Entity(List<DemoReq> list);
}
3.2 使用案例
public void agree(DemoReqreq) {
Demo entity = DemoConverter .INSTANCE.req2Entity(req);
}
3.3 错误处理
若是报错
解决方法1: Setting -->Build,Execution,Deployment -->Compiler 加上参数: -Djps.track.ap.dependencies=false
解决方法2:使用maven编译,不用idea的编译(上线),本质是编译器自检不通过
java: Internal error in the mapping processor: java.lang.NullPointerExceptio
PS: 小的实体(被包含的实体)转换尽量在大的实体前面定义,可以避免一些莫名其妙的,难以排查的问题