使用beanutils.properties方法将属性从源复制到目标类

时间:2019-06-20 09:48:50

标签: spring apache-commons-beanutils

我有一个带有某些参数的源类Entity和一个目标类Dto类。 现在,实体类具有其他类的参数,但是在dto类中,我直接使用这些参数,而不使用dto中的其他类引用。

问题是:在执行BeanUtils.copyProperties(source,target)时,那些引用了其他类的属性无法将副本复制到dto类。

实体类:

Public class Entity{
   private A a;
   private String add;
}
Public class A{
  private String name;
}
Dto class :
public class Dto{
  private String add;
  private String name;     // here instead of class A i directly took the param of class A as per requirement.
}

我该如何BeanUtils.copyProperties(Entity,Dto);来复制所有属性。

实体类包含来自其他实体类的参数,但是dto不包含对其他类的引用,而是直接具有其他类的参数。

1 个答案:

答案 0 :(得分:0)

Spring具有转换器的概念,当它必须在类之间进行转换时会自动使用。 BeanUtils.copyProperties似乎没有使用它,但是使用BeanWrapper来编写一个遍历属性并尝试使用Converters(在这种情况下是从A到String的Converters)进行复制的替代方案应该很困难属性。

或者,还有其他可以执行类似任务的库:DozerModelMapperMapStruct仅举几个例子,没有任何偏好。