ein Tool für Java-Objekt-zu-Objekt-Mapping? [closed]

Lesezeit: 7 Minuten

ein Tool fur Java Objekt zu Objekt Mapping closed
ravinika

Ich versuche, DO in DTO mit Java zu konvertieren und suche nach einem automatisierten Tool, bevor ich mit dem Schreiben meines eigenen beginne. Ich wollte nur wissen, ob es dafür ein kostenloses Tool gibt.

  • Jackson (die JSON-Bibliothek) hat eine Methode new ObjectMapper().convertValue(...). Jackson unterstützt auch Anmerkungen und Anmerkungs-Mixins, daher finde ich es eine sehr gute Option.

    – Simon Forsberg

    3. August 2017 um 13:24 Uhr

  • Hier ist ein Artikel mit verschiedenen Frameworks und Leistungsvergleich. baeldung.com/java-performance-mapping-frameworks

    – Christian

    5. November 2018 um 13:03 Uhr

  • Ich habe alle Antworten aus diesem Artikel gelesen und mich für die Verwendung entschieden MapStruct 🙂

    – wosuc

    15. Februar um 1:40 Uhr


ein Tool fur Java Objekt zu Objekt Mapping closed
Pascal Thivent

Es gibt einige Bibliotheken in der Nähe:

  • Commons-BeanUtils: ConvertUtils -> Utility-Methoden zum Konvertieren von skalaren Stringwerten in Objekte der angegebenen Klasse, String-Arrays in Arrays der angegebenen Klasse.

  • Commons-Lang: ArrayUtils -> Operationen auf Arrays, primitive Arrays (wie int[]) und primitive Wrapper-Arrays (wie Integer[]).

  • Frühlingsrahmen: Spring bietet eine hervorragende Unterstützung für PropertyEditors, die auch zum Transformieren von Objekten in/von Strings verwendet werden können.

  • Bulldozer: Dozer ist ein leistungsstarker und dennoch einfacher Java Bean-zu-Java-Bean-Mapper, der Daten rekursiv von einem Objekt auf ein anderes kopiert. Typischerweise werden diese Java Beans von verschiedenen komplexen Typen sein.

  • ModelMapper: ModelMapper ist ein intelligentes Objekt-Mapping-Framework, das Objekte automatisch einander zuordnet. Es verwendet einen auf Konventionen basierenden Ansatz zum Zuordnen von Objekten und bietet gleichzeitig eine einfache Refactoring-sichere API zum Behandeln bestimmter Anwendungsfälle.

  • Kartenstruktur: MapStruct ist ein Kompilierzeit-Codegenerator für Bean-Mappings, was zu schnellem (keine Verwendung von Reflektion oder ähnlichem), abhängigkeitslosem und typsicherem Mapping-Code zur Laufzeit führt.

  • Orika: Orika verwendet Byte-Code-Generierung, um schnelle Mapper mit minimalem Overhead zu erstellen.

  • Selma: Compile-Time-Code-Generator für Mappings

  • JMapper: Bean-Mapper-Generierung mit Annotation, XML oder API (scheint tot zu sein, zuletzt aktualisiert vor 2 Jahren)

  • Raucht: Mit der Smooks JavaBean Cartridge können Sie Java-Objekte aus Ihren Nachrichtendaten erstellen und füllen (dh Daten binden an) (empfohlen von Superfilin in Kommentaren). (Nicht mehr in aktiver Entwicklung)

  • Commons-Convert: Commons-Convert zielt darauf ab, eine einzige Bibliothek bereitzustellen, die der Aufgabe gewidmet ist, ein Objekt eines Typs in einen anderen zu konvertieren. Die erste Phase konzentriert sich auf Konvertierungen von Objekt zu String und von String zu Objekt. (scheint tot zu sein, letztes Update 2010)

  • Transmorph: Transmorph ist eine freie Java-Bibliothek, die verwendet wird, um ein Java-Objekt eines Typs in ein Objekt eines anderen Typs (mit einer anderen Signatur, möglicherweise parametrisiert) umzuwandeln. (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 Primitive und Objekte, für mehrdimensionale Arrays und Transformationen mit DynaBeans (scheint tot zu sein, zuletzt aktualisiert 2008)

  • Morph: Morph ist ein Java-Framework, das die interne Interoperabilität einer Anwendung erleichtert. Wenn Informationen durch eine Anwendung fließen, werden sie mehrfach transformiert. Morph bietet eine Standardmethode zum Implementieren dieser Transformationen. (scheint tot zu sein, letztes Update 2008)

  • Lorenz: 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)

  • OTOM: Mit OTOM können Sie beliebige Daten von jedem Objekt zu jedem anderen Objekt kopieren. Die Möglichkeiten sind endlos. Willkommen im „Herbst“. (scheint tot)

  • Keine der Listen unterstützt Anmerkungen 🙁

    – ravinika

    17. September 2009 um 7:21 Uhr

  • Commons-Convert scheint jetzt nicht nur ruhend, sondern komplett verschwunden zu sein …

    – Jim Ferrans

    30. März 2010 um 2:53 Uhr

  • Wenn Sie Moo zu Ihrer Liste hinzufügen möchten, kann ich meine Antwort entfernen, da Ihre Antwort eindeutig viel vollständiger ist. 😉

    – Geoffrey Wiseman

    21. April 2011 um 15:37 Uhr

  • Eine weitere Option für Java 8+: erchu.github.io/bean-cp (Haftungsausschluss: Ich bin der Autor dieses Projekts)

    – Raffal

    3. November 2014 um 7:54 Uhr

  • @TmTron: Fertig und ich habe die Antwort bearbeitet, um den Streik zu entfernen und auf die Repo-URL zu verweisen (da die Hauptseite immer noch auf 0.7.5 verweist).

    – patric.schenke

    19. Juni 2017 um 8:33 Uhr

Du könntest es versuchen Bulldozer.

Dozer ist ein Java-Bean-zu-Java-Bean-Mapper, der Daten rekursiv von einem Objekt auf ein anderes kopiert. Typischerweise werden diese Java Beans von verschiedenen komplexen Typen sein.

Dozer unterstützt einfaches Property-Mapping, komplexes Typ-Mapping, bidirektionales Mapping, implizit-explizites Mapping sowie rekursives Mapping. Dazu gehört das Zuordnen von Sammlungsattributen, die ebenfalls auf Elementebene zugeordnet werden müssen.

1646258833 441 ein Tool fur Java Objekt zu Objekt Mapping closed
Thomas

Eine andere ist Orika – https://github.com/orika-mapper/orika

Orika ist ein Java-Bean-Mapping-Framework, das (unter anderem) Daten rekursiv von einem Objekt auf ein anderes kopiert. Es kann sehr nützlich sein, wenn Sie mehrschichtige Anwendungen entwickeln.

Orika konzentriert sich darauf, so viel wie möglich zu automatisieren, und bietet bei Bedarf Anpassungen durch Konfiguration und Erweiterung.

Orika ermöglicht dem Entwickler:

  • Bilden Sie komplexe und tief strukturierte Objekte ab
  • „Reduzieren“ oder „Erweitern“ von Objekten durch Zuordnen von verschachtelten Eigenschaften zu Eigenschaften der obersten Ebene und umgekehrt
  • Erstellen Sie Mapper on-the-fly und wenden Sie Anpassungen an, um einige oder alle Mappings zu steuern
  • Erstellen Sie Konverter für die vollständige Kontrolle über die Zuordnung einer bestimmten Gruppe von Objekten an beliebiger Stelle im Objektdiagramm – nach Typ oder sogar nach bestimmten Eigenschaftsnamen
  • Umgang mit Proxys oder erweiterten Objekten (wie denen von Hibernate oder den verschiedenen Mock-Frameworks)
  • Wenden Sie bidirektionales Mapping mit einer Konfiguration an
  • Abbildung auf Instanzen einer geeigneten konkreten Klasse für eine abstrakte Zielklasse oder Schnittstelle
  • Behandeln Sie umgekehrte Zuordnungen
  • Umgang mit komplexen Konventionen jenseits der JavaBean-Spezifikationen.

Orika verwendet Byte-Code-Generierung, um schnelle Mapper mit minimalem Overhead zu erstellen.

  • Sie könnten ein paar Worte zu Orika sagen – was es von den anderen unterscheidet

    – Olimpiu POP

    8. April 2013 um 13:49 Uhr

  • Es ist wahrscheinlich viel schneller als Dozer – Dozer ist ziemlich langsam.

    – Ondrej Bozek

    11. Januar 2016 um 15:47 Uhr

  • Es scheint, dass Orika eingestellt wird.

    – wosuc

    16. Februar um 4:28 Uhr

1646258834 578 ein Tool fur Java Objekt zu Objekt Mapping closed
Jonathan

ModelMapper ist eine weitere Bibliothek, die einen Besuch wert ist. Das Design von ModelMapper unterscheidet sich von anderen Bibliotheken dadurch, dass es:

  • Ordnet Objektmodelle automatisch zu, indem Quell- und Zieleigenschaften intelligent abgeglichen werden
  • Stellt eine Refactoring-API für sichere Zuordnung bereit, die tatsächlichen Code verwendet, um Felder und Methoden zuzuordnen, anstatt Zeichenfolgen zu verwenden
  • Verwendet eine konventionsbasierte Konfiguration zur einfachen Handhabung benutzerdefinierter Szenarien

Weitere Informationen finden Sie auf der ModelMapper-Website:

http://modelmapper.org

1646258835 208 ein Tool fur Java Objekt zu Objekt Mapping closed
Pablojim

Verwenden Sie Apache Commons Beanutils:

static void copyProperties(Object dest, Object orig)

-Kopieren Sie Eigenschaftswerte von der Ursprungs-Bean in die Ziel-Bean für alle Fälle, in denen die Eigenschaftsnamen gleich sind.

http://commons.apache.org/proper/commons-beanutils/

  • Ja, aber Eigenschaften, die in der Quell-Bean, aber nicht in der Ziel-Bean enthalten sind, werden einfach ignoriert. Trotzdem danke Pablojim 🙂 Ich denke, ich muss Dozer nehmen, da wir einige Eigenschaftsnamen für DO und DTO unterschiedlich haben 🙁

    – ravinika

    16. September 2009 um 13:30 Uhr

  • Fair genug – das wusste ich nicht … Pascals Liste war ziemlich beeindruckend!

    – Pablojim

    16. September 2009 um 18:33 Uhr

1646258835 883 ein Tool fur Java Objekt zu Objekt Mapping closed
Dmitri

Es gibt noch eine weitere Java-Mapping-Engine/Framework Nomin: http://nomin.sourceforge.net.

  • Ja, aber Eigenschaften, die in der Quell-Bean, aber nicht in der Ziel-Bean enthalten sind, werden einfach ignoriert. Trotzdem danke Pablojim 🙂 Ich denke, ich muss Dozer nehmen, da wir einige Eigenschaftsnamen für DO und DTO unterschiedlich haben 🙁

    – ravinika

    16. September 2009 um 13:30 Uhr

  • Fair genug – das wusste ich nicht … Pascals Liste war ziemlich beeindruckend!

    – Pablojim

    16. September 2009 um 18:33 Uhr

ein Tool fur Java Objekt zu Objekt Mapping closed
Simon Forsberg

Ich schlage vor, Sie versuchen es JMapper-Framework.

Es ist ein Java-Bean-zu-Java-Bean-Mapper, mit dem Sie die Passage von Daten dynamisch mit Annotationen und / oder XML durchführen können.

Mit JMapper können Sie:

  • Zielobjekte erstellen und anreichern
  • Wenden Sie eine bestimmte Logik auf das Mapping an
  • XML-Datei automatisch verwalten
  • Implementieren Sie die 1-zu-N- und N-zu-1-Beziehungen
  • Implementieren Sie explizite Konvertierungen
  • Wenden Sie geerbte Konfigurationen an

916610cookie-checkein Tool für Java-Objekt-zu-Objekt-Mapping? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy