BeanUtils.copyProperties() против DozerBeanMapper.map()

Я использую BeanUtils.copyProperties() для сопоставления bean-компонента с dto, когда мне нужно сопоставить все поля и имена полей одинаковы. Но мне не нужно, чтобы все поле исходного компонента отображалось в dto назначения, я использовал DozerBeanMapper.map() , потому что я не знаю, как использовать BeanUtils в этой ситуации.

Поэтому я думаю, что оба метода имеют свою собственную функциональность, и между ними нет никакого сходства. Я прав? Пожалуйста, помогите мне.


person Pankaj Kumar    schedule 23.06.2011    source источник


Ответы (2)


Вы можете проверить ModelMapper. Он будет разумно отображать свойства (поля/методы), даже если имена не совсем совпадают. Определить конкретные свойства, которые нужно сопоставить или пропустить, очень просто, и вместо XML используется реальный код:

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

Посетите домашнюю страницу проекта для получения дополнительной информации:

http://modelmapper.org

person Jonathan    schedule 23.06.2011
comment
ModelMapper действительно хорош, но медленный - person Nitin Nanda; 30.11.2020

Мы рассмотрели mapstruct для нашего варианта использования. См. образец ниже:

@Mapper
public interface MyMapper {

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

    To to(From from);

}

Вот сравнение производительности MapStruct с Selma, Orika, ModelMapper, Dozer и ручным сопоставлением:

Ручное сопоставление, Selma, MapStruct, Orika, ModelMapper, Dozer

Selma и MapStruct

person user2775185    schedule 10.11.2016
comment
Есть ли у вас какое-либо сравнение между MapStruct и BeanUtils.copyProperties()? - person Marcin Erbel; 23.01.2019