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 ci sono strumenti gratuiti disponibili per lo stesso.
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 ci sono strumenti gratuiti disponibili per lo stesso.
Risposte:
Potresti provare Dozer .
Dozer è un mappatore da bean Java a bean Java che copia ricorsivamente i dati da un oggetto a un altro. In genere, questi bean Java saranno di diversi tipi complessi.
Dozer supporta la mappatura semplice delle proprietà, la mappatura di tipi complessi, la mappatura bidirezionale, la mappatura esplicita implicita e la mappatura ricorsiva. Ciò include la mappatura degli attributi di raccolta che richiedono anche la mappatura a livello di elemento.
Ci sono alcune librerie lì intorno:
Commons-BeanUtils : ConvertUtils -> Metodi di utilità per convertire 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 offre un eccellente supporto per PropertyEditor, che può essere utilizzato anche per trasformare gli oggetti in / da stringhe.
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 oggetti intelligente che mappa automaticamente gli oggetti tra loro. Utilizza un approccio basato su una convenzione per mappare gli oggetti fornendo al contempo un semplice API di refactoring sicuro per la gestione di casi d'uso specifici.
MapStruct : MapStruct è un generatore di codice in fase di compilazione per i mapping dei bean, che consente di eseguire rapidamente il codice di mapping (senza utilizzo di riflessioni o simili), privo di dipendenze e di tipo sicuro.
Orika : Orika utilizza la generazione del codice byte per creare mappatori veloci con un sovraccarico minimo.
Selma : generatore di codice in fase di compilazione per i mapping
JMapper : generazione del mapper di bean utilizzando Annotation, XML o API (sembra morto, ultimo aggiornamento 2 anni fa)
Smooks : la cartuccia JavaBean di Smooks consente di creare e popolare oggetti Java dai dati dei messaggi (ad es. Dati di bind a) (suggeriti da superfilin nei commenti). (Non più in fase di sviluppo attivo)
Commons-Convert : Commons-Convert mira a fornire un'unica libreria dedicata al compito di convertire 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 primitive 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 generico framework di conversione da oggetto a 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. Benvenuti in "autunno". (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 a un altro. Può essere molto utile durante lo sviluppo di applicazioni multistrato.
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
- "Appiattisci" o "Espandi" oggetti mappando le proprietà nidificate sulle proprietà di livello superiore e viceversa
- Crea mapper al volo e applica le 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 anche 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
- Mappare le istanze di una classe concreta appropriata per una classe o interfaccia astratta di destinazione
- Gestisci mappature inverse
- Gestisci 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 provare . Il design di ModelMapper è diverso dalle altre librerie in quanto:
Controlla il sito ModelMapper per maggiori informazioni:
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 i casi in cui i nomi delle proprietà sono uguali.
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 per mappatore bean Java, consente di eseguire il passaggio di dati in modo dinamico con annotazioni e / o XML.
Con JMapper puoi:
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 migliorarlo per ulteriori complessità.
Puoi anche provare il framework di mappatura basato su Dozer, ma con la dichiarazione di mappatura di Excel. Hanno alcuni strumenti e altre fantastiche funzionalità. Controlla su http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
. Jackson ha anche il supporto per le annotazioni e le annotazioni-mixin, quindi la trovo un'ottima opzione.