受够了代码中的BeanUtils.copyProperties,和同事聊起来被安利了mapstruct这个骚东西, 它是自动生成set方法进行类型转换的,不使用反射,效率极好而已友好。遂动手引入mapstruct,但是因为项目中原本就集成了lombok,引入mapstruct之后巨多问题,一顿骚操作之后,把注解包和功能包都直接放在依赖中之后,仍然会有偶尔无法正常生成方法实现的问题,如下:
public XXXVO toXXXVO(XXXModel model) {
if ( model == null ) {
return null;
}
XXXVO xxxVO = new XXXVO();
return xxxVO;
}
很明显是没有set方法。。。but why?
猜测是这俩代码生成工具生效的顺序有问题,就是说,可能mapstruct先生成了实体映射方法,lombok随后才生成get set方法,所以会有这种状况发生。
然后网上搜lombok和兼容版本处理。。。无果。。。。然后我瞬间聪明了,同事有调好的版本哇!到此解决。答案是:mapstruct-1.3.0.Final,对应lombok-1.18.10 就可以正常使用了!done.