1.现象
使用apache commons-beanutils复制类
BeanUtils.copyProperties()复制时无法拷贝。
2.问题分析
由于引入了lombokd的`@Accessors(chain=true)`注解生成的setter方法,返回的都是this当前对象,而BeanUtils.copyProperties获取的是void返回值类型方法,从而导致拷贝类失效
3.解决方案
1.删除lombok对应的代码,手动生成setter与getter方案(个人不建议);
2.引入Spring的BeanUtils拷贝,注意apache与Spring参数的先后顺序是不一致的。
apache BeanUtils:
public static void copyProperties(final Object dest, final Object orig)
Spring BeanUtils:
public static void copyProperties(Object source, Object target) throws BeansException
两者效率是上对比,Spring的拷贝要优于Apache的效率
3.使用MapStruct