BeanUtils.copyProperties()
当我需要映射所有字段并且字段名称相同时,我正在使用bean 到 dto 映射。但是我不需要将源 bean 的所有字段映射到目标 dto,我使用了 DozerBeanMapper.map()
,因为我不知道在这种情况下使用 BeanUtils。
所以我认为这两种方法都有自己的功能,两者之间没有任何相似之处。我对吗?请指导我。
BeanUtils.copyProperties()
当我需要映射所有字段并且字段名称相同时,我正在使用bean 到 dto 映射。但是我不需要将源 bean 的所有字段映射到目标 dto,我使用了 DozerBeanMapper.map()
,因为我不知道在这种情况下使用 BeanUtils。
所以我认为这两种方法都有自己的功能,两者之间没有任何相似之处。我对吗?请指导我。
您可以查看ModelMapper。即使名称不完全相同,它也会智能地映射属性(字段/方法)。定义要映射或跳过的特定属性很简单,并且使用真实代码而不是 XML:
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Order, OrderDTO>() {
protected void configure() {
map().setBillingStreet(source.getBillingStreetAddress());
skip().setBillingCity(null);
}
});
查看项目主页以获取更多信息:
我们为我们的用例考虑了 mapstruct。请参阅下面的示例:
@Mapper
public interface MyMapper {
MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);
To to(From from);
}
这是 MapStruct 与 Selma、Orika、ModelMapper、Dozer 和手动映射的性能比较: