BeanUtils.copyProperties()vs DozerBeanMapper.map()

Pan*_*mar 5 java mapping dozer apache-commons-beanutils

我使用BeanUtils.copyProperties()的bean来DTO映射,当我需要映射所有字段和字段名称相同.但我不需要在目标dto中映射源bean的所有字段,我使用过 DozerBeanMapper.map(),因为我不知道在这种情况下使用BeanUtils.

所以我认为这两种方法都有自己的功能,两者之间没有任何相似之处.我对吗?请指导我.

Jon*_*han 8

你可以查看ModelMapper.即使名称不完全相同,它也会智能地映射属性(字段/方法).定义要映射或跳过的特定属性很简单,并使用实际代码而不是XML:

ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Order, OrderDTO>() {
  protected void configure() {
    map().setBillingStreet(source.getBillingStreetAddress());
    skip().setBillingCity(null);
  }
});
Run Code Online (Sandbox Code Playgroud)

查看项目主页以获取更多信息:

http://modelmapper.org


use*_*185 6

我们考虑了mapstruct作为用例。请参阅以下示例:

@Mapper
public interface MyMapper {

    MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);

    To to(From from);

}
Run Code Online (Sandbox Code Playgroud)

这是MapStruct与Selma,Orika,ModelMapper,Dozer和手动映射的性能比较:

手动贴图,Selma,MapStruct,Orika,ModelMapper和Dozer

塞尔玛vs.MapStruct

  • 你有 MapStruct 和 BeanUtils.copyProperties() 之间的任何地方吗? (2认同)