Domanda

Sto cercando di convertire DO in DTO usando Java e cerco uno strumento automatico prima di iniziare a scrivere il mio. Volevo solo sapere se esiste uno strumento gratuito disponibile per lo stesso.

È stato utile?

Soluzione

È possibile provare Dozer .

  

Dozer è un bean da Java a Java Bean   mapper che copia in modo ricorsivo i dati   da un oggetto all'altro. Tipicamente,   questi fagioli Java saranno diversi   tipi complessi.

     

Dozer supporta proprietà semplici   mappatura, mappatura di tipi complessi,   mappatura bidirezionale,   mappatura esplicita implicita, nonché   mappatura ricorsiva. Ciò comprende   la mappatura della collezione lo attribuisce   anche bisogno di mappatura all'elemento   livello.

Altri suggerimenti

Ci sono alcune librerie da queste parti:

  • Commons-BeanUtils : ConvertUtils - > Metodi di utilità per convertire i valori scalari di String in oggetti della Classe specificata, array di String in array della Classe specificata.

  • Commons-Lang : ArrayUtils - > Operazioni su array, array primitivi (come int []) e array wrapper primitivi (come Integer []).

  • Spring framework : Spring ha un eccellente supporto per PropertyEditor, che può anche essere usato per trasformare gli oggetti in / from Strings.

  • Dozer : Dozer è un potente ma semplice mappatore da Java Bean a Java Bean che copia ricorsivamente i dati da un oggetto a un altro. In genere, questi bean Java saranno di diversi tipi complessi.

  • ModelMapper : ModelMapper è un framework di mappatura di oggetti intelligente che mappa automaticamente gli oggetti tra loro. Utilizza un approccio basato su una convenzione per mappare gli oggetti fornendo al contempo una semplice API di refactoring sicura per la gestione di casi d'uso specifici.

  • MapStruct : MapStruct è un generatore di codice in fase di compilazione per i mapping dei bean, che risulta veloce (nessun utilizzo di riflessione o simili), codice di mappatura senza dipendenza e sicuro per i tipi in fase di esecuzione.

  • Orika : Orika utilizza la generazione di codici byte per creare mappatori veloci con un sovraccarico minimo.

  • Selma : generatore di codice in fase di compilazione per mappature

  • JMapper : generazione di mapper di bean usando Annotation, XML o API

  • Smooks : la cartuccia JavaBean di Smooks consente di creare e popolare oggetti Java dal dati del messaggio (ovvero associa i dati a) (suggeriti da superfilin nei commenti). (Non più attivo sviluppo)

  • Commons-Convert : Commons-Convert mira a fornire un singola libreria dedicata all'attività di conversione di un oggetto di un tipo in un altro. Il primo stadio si concentrerà sulle conversioni da oggetto a stringa e da stringa a oggetto. (sembra morto, ultimo aggiornamento 2010)

  • Transmorph : Transmorph è una libreria java gratuita utilizzata per convertire un oggetto Java di un tipo in un oggetto di un altro tipo (con un'altra firma, possibilmente parametrizzata). (sembra morto, ultimo aggiornamento 2013)

  • EZMorph : EZMorph è una semplice libreria java per trasformare un oggetto in un altro Oggetto. Supporta trasformazioni per primitivi e oggetti, per array multidimensionali e trasformazioni con DynaBeans (sembra morto, ultimo aggiornamento 2008)

  • Morph : Morph è un framework Java che facilita l'interoperabilità interna di un'applicazione . Man mano che l'informazione scorre attraverso un'applicazione, subisce molteplici trasformazioni. Morph fornisce un modo standard per implementare queste trasformazioni. (sembra morto, ultimo aggiornamento 2008)

  • Lorentz : Lorentz è un oggetto generico- quadro di conversione in oggetto. Fornisce una semplice API per convertire oggetti Java di un tipo in un oggetto di un altro tipo. (sembra morto)

  • OTOM : con OTOM, è possibile copiare qualsiasi dato da qualsiasi oggetto a qualsiasi altro oggetto. Le possibilità sono infinite. Benvenuto in " Autumn " ;. (sembra morto)

Un altro è Orika - https://github.com/orika-mapper/orika

  

Orika è un framework di mapping Java Bean che copia in modo ricorsivo (tra le altre funzionalità) i dati da un oggetto all'altro. Può essere molto utile durante lo sviluppo di applicazioni a più livelli.

     

Orika si concentra sull'automazione il più possibile, fornendo al contempo personalizzazione attraverso la configurazione e l'estensione dove necessario.

     

Orika consente allo sviluppatore di:

     
      
  • Mappa oggetti complessi e profondamente strutturati
  •   
  • " Flatten " oppure " Espandi " oggetti mappando le proprietà nidificate alle proprietà di livello superiore e viceversa
  •   
  • Crea mapper al volo e applica personalizzazioni per controllare parte o tutto il mapping
  •   
  • Crea convertitori per il controllo completo sulla mappatura di un insieme specifico di oggetti in qualsiasi punto del grafico degli oggetti - per tipo o persino per nome di proprietà specifico
  •   
  • Gestisci proxy o oggetti migliorati (come quelli di Hibernate o i vari framework finti)
  •   
  • Applica mappatura bidirezionale con una configurazione
  •   
  • Mappa su istanze di una classe concreta appropriata per una classe o un'interfaccia astratta di destinazione
  •   
  • Gestisci mappature inverse
  •   
  • Gestisce convenzioni complesse oltre le specifiche JavaBean.
  •   
     

Orika utilizza la generazione del codice byte per creare mappatori veloci con un sovraccarico minimo.

ModelMapper è un'altra libreria che vale la pena dare un'occhiata. Il design di ModelMapper è diverso dalle altre librerie in quanto:

  • Mappa automaticamente i modelli di oggetti abbinando in modo intelligente le proprietà di origine e destinazione
  • Fornisce un'API di mapping sicuro refactoring che utilizza il codice effettivo per mappare campi e metodi anziché utilizzare stringhe
  • Utilizza la configurazione basata su convenzione per una semplice gestione degli scenari personalizzati

Controlla il sito ModelMapper per maggiori informazioni:

http://modelmapper.org

Usa beanutils comuni di Apache:

  

static void copyProperties (Object dest, Object orig)   -Copia i valori delle proprietà dal bean di origine al bean di destinazione per tutti   casi in cui i nomi delle proprietà sono   stesso.

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

Esiste un altro motore / framework di mappatura Java Nomin: http://nomin.sourceforge.net .

Ti suggerisco di provare JMapper Framework .

Si tratta di un bean Java al mappatore di bean Java, consente di eseguire il passaggio di dati in modo dinamico con annotazioni e / o XML.

Con JMapper puoi:

  • Crea e arricchisci oggetti target
  • Applica una logica specifica alla mappatura
  • Gestisci automaticamente il file XML
  • Implementa le relazioni da 1 a N e da N a 1
  • Implementa conversioni esplicite
  • Applica configurazioni ereditate

Sono felice di aggiungere Moo come opzione, anche se chiaramente sono di parte: http://geoffreywiseman.github.com/Moo/

È molto facile da usare per casi semplici, ragionevole per casi più complessi, anche se ci sono ancora alcune aree in cui posso immaginare di migliorarla per ulteriori complessità.

Puoi anche provare a mappare il framework basato su Dozer, ma con la dichiarazione del mapping di Excel. Hanno alcuni strumenti e altre fantastiche funzionalità. Controlla su http://openl-tablets.sf.net/mapper

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top