1 引入依赖
<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>
2:UserInfoMapper类
@Mapper
public interface UserInfoMapper extends BaseMapper<UserEntity, UserVO> {
UserInfoMapper INSTANCE = Mappers.getMapper(UserInfoMapper.class);
}
3:BaseMapper类
public interface BaseMapper<P, V> {
P voToPO(V vo);
List<P> voToPO(List<V> voList);
V poToVO(P po);
List<V> poToVO(List<P> poList);
}
4:Junit测试
User user = userService.getById(1);
UserVO userVO = UserInfoMapper.INSTANCE.poToVO(user);
System.out.println(userVO);
注意:使用MapStruct时的几个问题
问题一:报java: Internal error in the mapping processor: java.lang.NullPointerException
解决方案:使用1.4.1.Final及以上版本
问题二:复制的属性值全部为null
解决方案:与lombok有关系,lomboc必须在mapstruct之前引入,所以尽量把lombok依赖放到最前面