Derzeit gibt es zwei beliebte Java Object to Object Mapping Frameworks, die Dozer ( http://dozer.sourceforge.net/documentation/mappings.html ) ersetzen sind:
Mit Ausnahme dieser Seite ( http://vytas.io/blog/Java/java-object-to-object-mapping-which-framework-to-choose-part-2/ ) I Ich habe online nicht viel darüber herausgefunden, welches Framework besser ist als das andere oder unter welchen Umständen sie besser sind. Ich frage mich, ob jemand etwas Licht ins Dunkel bringen kann. In Bezug auf die auf den Dokumenten basierende Funktionalität scheinen sie dasselbe zu tun.
(Originalautor von MapStruct hier, also bin ich natürlich voreingenommen)
Tatsächlich basieren beide Projekte auf der gleichen allgemeinen Idee, Mapping-Code zur Kompilierungszeit zu generieren. Ich empfehle Ihnen MapStruct aus folgenden Gründen:
JAXBElement
(Ursprünglicher Autor von Selma so geringfügig andere Sicht)
Selma und MapStruct erledigen den gleichen Job mit einigen Unterschieden. Zunächst scheint es, dass der von Selma generierte Code etwas schneller ist als MapStruct ( http://javaetmoi.com/wp-content/uploads/2015/09/2015-09-mapping-objet-objet2.png =). Die Versionsnummer 0.13 spiegelt nicht wirklich die Reife des Codes wider. Selma ist stabil und robust und wird seit 2 Jahren in der Produktion verwendet.
Die Hauptidee von Selma ist es, die Umwandlung von Magie zu verhindern und alle Zuordnungen ohne Nebenwirkungen zu automatisieren. Wenn das Mapping zu komplex erscheint, sollte der Entwickler es mit benutzerdefinierten Mappings oder Interceptor selbst handhaben.
Der Footprint von Selma ist so klein wie möglich. Wir sind nur auf einen JavaWriter und das JDK angewiesen.
Selma versucht, nur statisch kompilierten generierten Code ohne Reflektion zur Laufzeit oder Pseudocode zu verwenden, der in Zeichenfolgenfelder geschrieben ist.
Sie können Komposition verwenden, um eine Kette von Mappern zu erstellen, und in einem einzelnen Mapper können Sie eine globale Konfiguration haben, die pro Methode überschrieben werden kann.
Compiler-Meldungen sollen Entwicklern frühzeitig Feedback geben, Tipps zur Behebung des Problems geben und die API kennenlernen.
Sicher ist, dass MapStruct umfangreicher ist, aber Selma bietet Entwicklern alle Tools, die für komplexe Zuordnungen erforderlich sind, und ist für die Erstellung der Geschäftslogik verantwortlich. Sie könnten auch eine der beiden APIs aus Benutzersicht besser finden als die andere. Versuchen Sie also am besten beide und wählen Sie diejenige aus, mit der Sie sich wohler fühlen. Es wird nicht zeitaufwändig sein.