Подтвердить что ты не робот

Отображение Java: Selma vs MapStruct

В настоящее время существуют две основные популярные структуры привязки объектов Java к объекту, которые заменяют Dozer (http://dozer.sourceforge.net/documentation/mappings.html):

За исключением этой страницы (http://vytas.io/blog/java/java-object-to-object-mapping-which-framework-to-choose-part-2/) Мне не удалось найти много онлайн, в отношении какой структуры лучше, чем другие, или при каких обстоятельствах они лучше. Удивление, если кто-то может пролить свет на это. С точки зрения функциональности, основанной на документах, они, похоже, делают то же самое.

4b9b3361

Ответ 1

(Оригинальный автор MapStruct здесь, поэтому, естественно, я предвзятый)

Действительно, оба проекта основаны на одной и той же общей идее генерации кода отображения во время компиляции; Я рекомендую вам MapStruct по следующим причинам:

  • Проверенная и стабильная база кода: MapStruct является старшей из двух, придумывая идею генерации сопоставления изначально. Он был расширен и отполирован в течение довольно долгого времени, основываясь на реальной обратной связи с использованием во многих проектах; Мы выпустили стабильный 1.0 Final в прошлом году.
  • Более крупное сообщество разработчиков и пользователей в соответствии с количеством коммиттеров (MapStruct, Selma) и пользовательские вопросы (MapStruct, Selma)
  • Многофункциональный (некоторые вещи, поддерживаемые в MapStruct, я не нашел (в той же степени) в документах Selma):
  • плагин Eclipse avaible: все еще работает, но его быстрые и автоматические завершения уже очень полезны при разработке интерфейсов mapper
  • Плагин IntelliJ: помогает при редактировании интерфейсов карт с помощью автозаполнения, перейдите к ссылочным свойствам, поддержке рефакторинга и т.д.

Ответ 2

(Оригинальный автор Selma с такой небольшой точкой зрения)

Selma и MapStruct выполняют ту же работу с некоторыми отличиями. Сначала кажется, что код, созданный Selma, немного быстрее, чем MapStruct (http://javaetmoi.com/wp-content/uploads/2015/09/2015-09-mapping-objet-objet2.png). Номер выпуска 0.13 на самом деле не отражает зрелость кода. Selma является стабильным и надежным, он используется в производстве в течение 2 лет.

Основная идея Selma - запретить магическое преобразование и просто автоматизировать все сопоставления без каких-либо побочных эффектов. Если отображение кажется слишком сложным, разработчик должен обрабатывать его самостоятельно, используя пользовательские сопоставления или перехватчик.

След Selma строится настолько, насколько это возможно, мы зависим только от JavaWriter и JDK.

Selma пытается использовать только статический скомпилированный сгенерированный код без какого-либо отражения во время выполнения или псевдокод, написанный в строковых полях.

Вы можете использовать композицию для построения цепочки маркеров и внутри одного картографа, который может иметь глобальную конфигурацию, которая может быть перезаписана на основе каждого метода.

Сообщения компилятора построены для предоставления ранней обратной связи разработчикам, советам по решению проблемы и изучению API.

В конце концов, MapStruct является более многофункциональным, но Selma предоставляет разработчику все инструменты, необходимые для сложного сопоставления, с ответственностью написания бизнес-логики. Вы также можете найти один из двух API лучше, чем другой, с точки зрения пользователя, поэтому лучше всего попробовать обеими и выбрать тот, с которым вам будет комфортно. Это не займет много времени.