Ich versuche, DO mit Java in DTO zu konvertieren und suche nach einem automatisierten Tool, bevor ich anfange, mein eigenes zu schreiben. Ich wollte nur wissen, ob es dafür ein kostenloses Tool gibt.
Ich versuche, DO mit Java in DTO zu konvertieren und suche nach einem automatisierten Tool, bevor ich anfange, mein eigenes zu schreiben. Ich wollte nur wissen, ob es dafür ein kostenloses Tool gibt.
Antworten:
Sie könnten Dozer versuchen .
Dozer ist ein Java Bean-zu-Java-Bean-Mapper, der rekursiv Daten von einem Objekt zu einem anderen kopiert. In der Regel handelt es sich bei diesen Java-Beans um verschiedene komplexe Typen.
Dozer unterstützt die einfache Zuordnung von Eigenschaften, die Zuordnung komplexer Typen, die bidirektionale Zuordnung, die implizit-explizite Zuordnung sowie die rekursive Zuordnung. Dies umfasst das Zuordnen von Sammlungsattributen, die auch auf Elementebene zugeordnet werden müssen.
Es gibt dort einige Bibliotheken:
Commons-BeanUtils : ConvertUtils -> Dienstprogrammmethoden zum Konvertieren von String-Skalarwerten in Objekte der angegebenen Klasse, String-Arrays in Arrays der angegebenen Klasse.
Commons-Lang : ArrayUtils -> Operationen an Arrays, primitiven Arrays (wie int []) und primitiven Wrapper-Arrays (wie Integer []).
Spring-Framework : Spring bietet eine hervorragende Unterstützung für PropertyEditors, mit denen auch Objekte in / aus Strings transformiert werden können.
Dozer : Dozer ist ein leistungsstarker und dennoch einfacher Java Bean-zu-Java Bean-Mapper, der rekursiv Daten von einem Objekt zu einem anderen kopiert. In der Regel handelt es sich bei diesen Java-Beans um verschiedene komplexe Typen.
ModelMapper : ModelMapper ist ein intelligentes Framework für die Objektzuordnung, das Objekte automatisch einander zuordnet. Es verwendet einen konventionellen Ansatz zum Zuordnen von Objekten und bietet gleichzeitig eine einfache Refactoring-sichere API für die Behandlung bestimmter Anwendungsfälle.
MapStruct : MapStruct ist ein Codegenerator zur Kompilierungszeit für Bean-Zuordnungen, der zur Laufzeit zu schnellem (ohne Verwendung von Reflection oder ähnlichem), abhängigkeitslosem und typsicherem Zuordnungscode führt.
Orika : Orika verwendet die Bytecode-Generierung, um schnelle Mapper mit minimalem Overhead zu erstellen.
Selma : Codegenerator zur Kompilierungszeit für Zuordnungen
JMapper : Bean Mapper-Generierung mit Annotation, XML oder API (scheint tot zu sein, zuletzt aktualisiert vor 2 Jahren)
Smooks : Mit der Smooks JavaBean Cartridge können Sie Java-Objekte aus Ihren Nachrichtendaten erstellen und füllen (dh Daten an binden) (vorgeschlagen von Superfilin in Kommentaren). (Nicht mehr in aktiver Entwicklung)
Commons-Convert : Commons-Convert zielt darauf ab, eine einzelne Bibliothek bereitzustellen, die der Aufgabe gewidmet ist, ein Objekt eines Typs in einen anderen zu konvertieren. Die erste Phase konzentriert sich auf die Konvertierungen von Objekt zu Zeichenfolge und von Zeichenfolge zu Objekt. (scheint tot zu sein, letztes Update 2010)
Transmorph : Transmorph ist eine kostenlose Java-Bibliothek, mit der ein Java-Objekt eines Typs in ein Objekt eines anderen Typs konvertiert wird (mit einer anderen Signatur, möglicherweise parametrisiert). (scheint tot zu sein, letztes Update 2013)
EZMorph : EZMorph ist eine einfache Java-Bibliothek zum Transformieren eines Objekts in ein anderes Objekt. Es unterstützt Transformationen für Grundelemente und Objekte, für mehrdimensionale Arrays und Transformationen mit DynaBeans (scheint tot, zuletzt aktualisiert 2008).
Morph : Morph ist ein Java-Framework, das die interne Interoperabilität einer Anwendung erleichtert. Während Informationen durch eine Anwendung fließen, werden sie mehreren Transformationen unterzogen. Morph bietet eine Standardmethode zum Implementieren dieser Transformationen. (scheint tot zu sein, letztes Update 2008)
Lorentz : Lorentz ist ein generisches Objekt-zu-Objekt-Konvertierungsframework. Es bietet eine einfache API zum Konvertieren von Java-Objekten eines Typs in ein Objekt eines anderen Typs. (scheint tot zu sein)
OTOM : Mit OTOM können Sie alle Daten von jedem Objekt auf jedes andere Objekt kopieren. Die Möglichkeiten sind endlos. Willkommen bei "Autumn". (scheint tot zu sein)
Eine andere ist Orika - https://github.com/orika-mapper/orika
Orika ist ein Java Bean-Mapping-Framework, das (unter anderem) rekursiv Daten von einem Objekt in ein anderes kopiert. Dies kann bei der Entwicklung mehrschichtiger Anwendungen sehr nützlich sein.
Orika konzentriert sich darauf, so viel wie möglich zu automatisieren und bei Bedarf Anpassungen durch Konfiguration und Erweiterung vorzunehmen.
Orika ermöglicht dem Entwickler:
- Komplexe und tief strukturierte Objekte abbilden
- Objekte "reduzieren" oder "erweitern", indem verschachtelte Eigenschaften Eigenschaften der obersten Ebene zugeordnet werden und umgekehrt
- Erstellen Sie Mapper im laufenden Betrieb und wenden Sie Anpassungen an, um einige oder alle Mappings zu steuern
- Erstellen Sie Konverter für die vollständige Kontrolle über die Zuordnung eines bestimmten Satzes von Objekten an einer beliebigen Stelle im Objektdiagramm - nach Typ oder sogar nach einem bestimmten Eigenschaftsnamen
- Behandeln Sie Proxys oder erweiterte Objekte (wie die von Hibernate oder die verschiedenen Mock-Frameworks).
- Wenden Sie bidirektionales Mapping mit einer Konfiguration an
- Zuordnung zu Instanzen einer geeigneten konkreten Klasse für eine abstrakte Zielklasse oder -schnittstelle
- Behandeln Sie umgekehrte Zuordnungen
- Behandeln Sie komplexe Konventionen, die über die JavaBean-Spezifikationen hinausgehen.
Orika verwendet die Bytecode-Generierung, um schnelle Mapper mit minimalem Overhead zu erstellen.
ModelMapper ist eine weitere Bibliothek, die einen Besuch wert ist. Das Design von ModelMapper unterscheidet sich von anderen Bibliotheken darin, dass es:
Weitere Informationen finden Sie auf der ModelMapper-Website:
Verwenden Sie Apache Commons Beanutils:
static void copyProperties(Object dest, Object orig)
-Kopieren Sie die Eigenschaftswerte von der Ursprungs-Bean zur Ziel-Bean für alle Fälle, in denen die Eigenschaftsnamen identisch sind.
Es gibt noch eine weitere Java Mapping Engine / Framework Nomin: http://nomin.sourceforge.net .
Ich schlage vor, Sie versuchen JMapper Framework .
Es ist ein Java-Bean-zu-Java-Bean-Mapper, mit dem Sie die Datenübertragung dynamisch mit Anmerkungen und / oder XML durchführen können.
Mit JMapper können Sie:
Ich bin froh, Moo als Option hinzuzufügen, obwohl ich eindeutig voreingenommen bin: http://geoffreywiseman.github.com/Moo/
Es ist sehr einfach für einfache Fälle zu verwenden, vernünftigerweise für komplexere Fälle geeignet, obwohl es noch einige Bereiche gibt, in denen ich mir vorstellen kann, es für noch weitere Komplexitäten zu verbessern.
Sie können auch versuchen, ein Mapping-Framework basierend auf Dozer, jedoch mit einer Excel-Mapping-Deklaration, zu erstellen. Sie haben einige Tools und zusätzliche coole Funktionen. Überprüfen Sie unter http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
. Jackson unterstützt auch Annotationen und Annotation-Mixins, daher finde ich das eine sehr gute Option.