238 votes

n’importe quel outil de mappage objet à java ?

Amis, je suis en train de convertir à la DTO en utilisant java et à la recherche d’un outil automatisé avant départ par écrit mon propre. Je voulais juste savoir si il y un outil gratuit disponible pour la même.

403voto

Pascal Thivent Points 295221

Il y a quelques bibliothèques autour de là:

  • Transmorph: Transmorph gratuit) est une bibliothèque java utilisé pour convertir un objet Java de type d'un objet d'un autre type (avec une autre signature, éventuellement paramétrable).

  • EZMorph: EZMorph est simple bibliothèque java pour transformer un Objet à un autre Objet. Il prend en charge les transformations pour les primitives et les Objets, pour les tableaux multidimensionnels et les transformations à DynaBeans

  • Communes-BeanUtils: ConvertUtils -> les méthodes de l'Utilitaire pour la conversion de la Chaîne de valeurs scalaires à des objets de la Classe spécifiée, la Chaîne de tableaux de tableaux de la Classe spécifiée.

  • Commons-Lang: ArrayUtils -> les Opérations sur les tableaux, tableaux primitifs (comme int[]) et primitif des tableaux (comme Integer[]).

  • Communes-Convertir: Commons-Convertir vise à fournir une bibliothèque unique, dédié à la tâche de convertir un objet d'un type à l'autre. La première étape sera de se concentrer sur l'Objet à la Chaîne et de la Chaîne pour Objet de conversions.

  • Morph: Morph est un framework Java qui facilite l'interne de l'interopérabilité d'une application. Comme les flux d'information au travers d'une application, elle subit de multiples transformations. Morphing offre un moyen standard pour mettre en œuvre ces transformations.

  • Lorentz: Lorentz est un générique d'objet à objet de la conversion cadre. Il fournit une API simple pour convertir un objet Java de type d'un objet d'un autre type. (il semble "mort")

  • Spring framework: Spring est un excellent support pour PropertyEditors, qui peut également être utilisé pour transformer des Objets/à partir de Chaînes de caractères.

  • Dozer: Dozer est un puissant, pourtant facile Java Bean de Bean Java mappeur que de manière récursive copie les données d'un objet à un autre. Généralement, ces Java Beans seront de différents types complexes.

  • ModelMapper: ModelMapper est un objet intelligent framework de mapping qui mappe automatiquement les objets les uns aux autres. Il utilise une convention d'une approche fondée sur les objets de la carte, tout en fournissant un simple coffre-fort de l'API pour le traitement des cas d'utilisation spécifiques.

  • OTOM: Avec OTOM, vous pouvez copier des données à partir d'un objet à un autre objet. Les possibilités sont infinies. Bienvenue à "l'Automne".

  • Smooks: Le Smooks JavaBean Cartouche vous permet de créer et remplir des objets Java à partir de votre message données (c'est à dire lier les données à) (suggéré par superfilin dans les commentaires).

Transmorph (assez récent), EZMorph, Bulldozer, ModelMapper, OTOM sont tous des candidats sérieux. Niveleuse semble être la plus active de projet si (et peut-être le plus avancé).

106voto

skaffman Points 197885

Vous pouvez essayer l' Engin.

Dozer est un Java Bean de Bean Java mappeur que de manière récursive des copies de données d'un objet à un autre. Généralement, ces Java Beans seront de différents les types complexes.

Dozer prend en charge propriété simple la cartographie, de type complexe de la cartographie, bi-directionnelle de la cartographie, implicite-explicite de la cartographie, ainsi que récursive de la cartographie. Cela comprend la cartographie de la collection d'attributs qui également besoin de la cartographie à l'élément niveau.

32voto

Tomas Points 151

Un autre est Orika - http://code.google.com/p/orika/

Orika est un Bean Java framework de mapping que de manière récursive exemplaires (entre autres) des données à partir d'un objet à un autre. Il peut être très utile lors de l'élaboration de multi-couches applications.

Orika se concentre sur l'automatisation autant que possible, tout en offrant une personnalisation par le biais de configuration et d'extension en cas de besoin.

Orika permet au développeur de :

  • Carte complexe et profond pour les objets structurés
  • "Aplatir" ou "Développer" les objets de la cartographie des propriétés imbriquées de propriétés de haut niveau, et vice-versa
  • Créer des contributeurs à la volée, et appliquer des personnalisations pour le contrôle de certains ou de la totalité de la cartographie
  • Créer des convertisseurs pour un contrôle complet sur la cartographie d'un ensemble spécifique d'objets n'importe où dans le graphe d'objets--par type, ou même par le nom de propriété
  • Poignée de procurations ou les objets améliorés (comme ceux de la veille prolongée, ou les différents cadres fictifs)
  • Appliquer bi-directionnelle avec une configuration de mappage
  • Carte d'instances d'un béton de classe à une classe abstraite ou une interface
  • Poignée inverse mappages
  • Poignée complexe de conventions au-delà de JavaBean specs.

Orika utilise l'octet de génération de code pour créer rapidement des mappers avec un minimum de frais généraux.

21voto

Jonathan Points 875

ModelMapper est une autre bibliothèque de la peine de vérifier. ModelMapper de la conception est différente des autres bibliothèques en ce qu'il:

  • Mappe automatiquement les modèles d'objet modulation intelligente de source et de destination propriétés
  • Fournit un refactoring sûr de cartographie de l'API qui utilise le code de mapper les champs et les méthodes plutôt que d'utiliser des chaînes de caractères
  • Utilise la convention en fonction de la configuration pour une manipulation simple des scénarios personnalisés

Découvrez la ModelMapper site pour plus d'info:

http://modelmapper.org

13voto

Pablojim Points 4367

Utiliser Apache commons beanutils :

``-Copier des valeurs de propriété de la fève d’origine à la fève de destination pour tous les cas où les noms des propriétés sont les mêmes.

http://Commons.Apache.org/beanutils/API/index.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X