Actuellement, il existe deux principaux cadres de mappage populaires Java Objet à objet qui remplacent Dozer ( http://dozer.sourceforge.net/documentation/mappings.html )). sont:
À l'exception de cette page ( http://vytas.io/blog/Java/java-object-to-object-mapping-which-framework-to-choose-part-2/ ) I n'ont pas été en mesure de trouver beaucoup d'informations en ligne sur les cadres qui sont meilleurs que les autres ou dans quelles circonstances ils sont meilleurs. Vous vous demandez si vous pouvez nous éclairer à ce sujet. En termes de fonctionnalités basées sur les documents, ils semblent faire la même chose.
(Auteur original de MapStruct ici, donc naturellement, je suis partial)
En effet, les deux projets sont basés sur la même idée générale de générer un code de mappage au moment de la compilation; Je vous recommande MapStruct pour les raisons suivantes:
JAXBElement
(Auteur original de Selma si léger point de vue différent)
Selma et MapStruct font le même travail avec quelques différences. Tout d’abord, il semble que le code généré par Selma soit juste un peu plus rapide que MapStruct ( http://javaetmoi.com/wp-content/uploads/2015/09/2015-09-mapping-objet-objet2.png =). Le numéro de version 0.13 ne reflète pas vraiment la maturité du code. Selma est stable et robuste; il est utilisé en production depuis 2 ans.
L'idée principale derrière Selma est d'interdire la conversion magique et d'automatiser simplement tous les mappages sans aucun effet secondaire. Lorsque le mappage semble trop complexe, le développeur doit le gérer lui-même en utilisant des mappages personnalisés ou un intercepteur.
L'empreinte de Selma est conçue pour être aussi petite que possible. Nous ne dépendons que de JavaWriter et du JDK.
Selma essaie d'utiliser uniquement du code généré compilé statique sans aucune réflexion au moment de l'exécution ni de pseudo-code écrit dans des champs de chaîne.
Vous pouvez utiliser la composition pour créer une chaîne de mappeurs. À l'intérieur d'un mappeur unique, vous pouvez avoir une configuration globale qui peut être écrasée méthode par méthode.
Les messages du compilateur sont conçus pour donner aux développeurs une première réaction, des astuces pour résoudre le problème et apprendre l'API.
À la fin, certes, MapStruct est plus riche en fonctionnalités, mais Selma fournit aux développeurs tous les outils nécessaires pour un mappage complexe avec la responsabilité d’écrire la logique d’entreprise. Vous pouvez également trouver l'une des 2 API plus agréable que l'autre du point de vue de l'utilisateur. La meilleure chose à faire est donc d'essayer les deux et de choisir celle avec laquelle vous vous sentez le plus à l'aise. Cela ne prendra pas de temps.