jakieś narzędzie do mapowania obiektów Javy? [zamknięte]

Próbuję przekonwertować DO na DTO za pomocą Javy i szukam zautomatyzowanego narzędzia przed rozpoczęciem pisania własnego. Chciałem tylko wiedzieć, czy jest jakieś darmowe narzędzie dostępne dla tego samego.

Author: ravinikam, 2009-09-16

10 answers

Możesz spróbować Dozer .

Dozer to Java Bean to Java Bean mapper rekurencyjnie kopiujący dane z jednego obiektu do drugiego. Typowo, te ziarna Jawy będą różnych złożone typy.

Spychacz obsługuje właściwości proste mapowanie, mapowanie typu złożonego, mapowanie dwukierunkowe, odwzorowanie implicit-explicit, a także odwzorowanie rekurencyjne. Obejmuje to odwzorowanie atrybutów kolekcji, które trzeba też mapować w elemencie poziom.

 102
Author: skaffman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-16 12:52:20

Są tam jakieś biblioteki:

  • Commons-BeanUtils : ConvertUtils - > metody użytkowe do zamiany wartości skalarnych łańcuchów na obiekty podanej klasy, tablice łańcuchowe na tablice podanej klasy.

  • Commons-Lang : ArrayUtils - > operacje na tablicach, prymitywnych tablicach (jak int []) i prymitywnych tablicach wrapperów (jak Integer[]).

  • Commons-Convert : Commons-Convert ma na celu dostarczenie jednego biblioteka dedykowana do zadania konwersji obiektu jednego typu na inny. Pierwszy etap skupi się na konwersji obiektu na ciąg i ciąg na obiekt.

  • Spring Framework: Spring posiada doskonałe wsparcie dla PropertyEditors, które mogą być również używane do przekształcania obiektów do / z łańcuchów.

  • Spycher : Spycher jest potężnym, ale prostym maperem Java Bean do Java Bean, który rekurencyjnie kopiuje dane z jednego obiektu do drugiego. Zazwyczaj te Java Beans będzie różnych złożonych typów.

  • ModelMapper : ModelMapper to inteligentny framework mapowania obiektów, który automatycznie mapuje obiekty do siebie. Wykorzystuje podejście oparte na konwencji do mapowania obiektów, zapewniając jednocześnie proste refaktoryzujące bezpieczne API do obsługi określonych przypadków użycia.

  • MapStruct : MapStruct jest generatorem kodu w czasie kompilacji dla mapowania fasoli, co skutkuje szybkim (bez użycia odbicia lub podobnego), bez zależności i wpisz bezpieczny kod mapowania w czasie wykonywania.

  • Orika : Orika używa generowania kodu bajtowego do tworzenia szybkich maperów przy minimalnym obciążeniu.

  • Selma : Compile-time code-generator dla mappingów

  • JMapper : generowanie maperów za pomocą adnotacji, XML lub API

  • Smooks : Kaseta Smooks JavaBean pozwala na tworzenie i wypełnianie obiektów Java z danych wiadomości (np. superfilin w komentarzach).

  • Transmorph: Transmorph jest darmową biblioteką Javy używaną do konwersji obiektu Java jednego typu na obiekt innego typu (z inną sygnaturą, być może sparametryzowaną). (wydaje się martwy, ostatnia aktualizacja 2013)

  • EZMorph : EZMorph jest prostą biblioteką java do przekształcania obiektu w inny obiekt. Obsługuje transformacje dla prymitywów i obiektów, dla wielowymiarowych tablic i transformacje za pomocą DynaBeans (wydaje się martwy, ostatnia aktualizacja 2008)

  • Morph : Morph jest frameworkiem Java, który ułatwia wewnętrzną interoperacyjność aplikacji. W miarę przepływu informacji przez aplikację, ulega ona wielu przekształceniom. Morph zapewnia standardowy sposób implementacji tych przekształceń. (wydaje się martwy, ostatnia aktualizacja 2008)

  • Lorentz : Lorentz jest ogólnym frameworkiem konwersji obiekt-obiekt. Informatyka zapewnia prosty interfejs API do konwersji obiektów Java jednego typu na obiekt innego typu. (wydaje się martwy)

  • OTOM : za pomocą OTOM można kopiować dowolne dane z dowolnego obiektu do dowolnego innego obiektu. Możliwości są nieograniczone. Witamy w "jesieni". (wydaje się martwy)

 356
Author: Pascal Thivent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-17 02:31:38

Kolejna to Orika - https://github.com/orika-mapper/orika

Orika jest frameworkiem Mapującym Java Bean, który rekurencyjnie kopiuje (między innymi) dane z jednego obiektu do drugiego. Może być bardzo przydatny przy tworzeniu aplikacji wielowarstwowych.

Orika koncentruje się na jak największej automatyzacji, zapewniając jednocześnie personalizację poprzez konfigurację i rozszerzenie w razie potrzeby.

Orika umożliwia deweloperowi:

  • Mapa obiektów złożonych i głęboko uporządkowanych
  • "Spłaszcz" lub "rozwiń" obiekty, mapując zagnieżdżone właściwości do właściwości najwyższego poziomu i odwrotnie
  • [12]} twórz mapery w locie i stosuj modyfikacje, aby kontrolować niektóre lub wszystkie mapowania [13]}
  • Tworzenie konwerterów dla pełnej kontroli nad mapowaniem określonego zestawu obiektów w dowolnym miejscu wykresu obiektów--według typu, a nawet według nazwy właściwości
  • Obsługa proxy lub ulepszonych obiektów (jak Hibernate, czyli różne mock frameworki)
  • stosowanie mapowania dwukierunkowego z jedną konfiguracją
  • mapowanie do instancji odpowiedniej konkretnej klasy dla docelowej klasy abstrakcyjnej lub interfejsu
  • Uchwyt odwrotnego mapowania
  • obsługuje złożone konwencje wykraczające poza specyfikacje JavaBean.

Orika wykorzystuje generowanie kodu bajtowego do tworzenia szybkich maperów z minimalnym obciążeniem.

 29
Author: Tomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-17 14:51:27

ModelMapper to kolejna biblioteka, którą warto sprawdzić. Projekt ModelMapper różni się od innych bibliotek tym, że:

  • automatycznie mapuje modele obiektów poprzez inteligentne dopasowanie właściwości źródła i miejsca przeznaczenia
  • zapewnia API bezpiecznego mapowania refaktoryzacji, które wykorzystuje rzeczywisty kod do mapowania pól i metod, a nie za pomocą łańcuchów
  • wykorzystuje konfigurację opartą na konwencji do prostej obsługi niestandardowych scenariuszy

Zobacz Strona ModelMapper po więcej informacji:

Http://modelmapper.org

 20
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-10 03:17:42

Użyj Apache commons beanutils:

static void copyProperties(Object dest, Object orig) - Kopiowanie wartości właściwości z origin bean do destination bean dla wszystkich przypadki, w których nazwy nieruchomości są to samo.

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

 12
Author: Pablojim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-28 18:43:11

Jest jeszcze jeden silnik/Framework Java mapping engine: http://nomin.sourceforge.net .

 5
Author: Dmitry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-09 22:34:23

Proponuję spróbować Jmapper Framework .

Jest to Java bean do Java bean mapper, pozwala na dynamiczne przesyłanie danych za pomocą adnotacji i / lub XML.

Z JMapper możesz:

  • Tworzenie i wzbogacanie obiektów docelowych
  • Zastosuj określoną logikę do mapowania
  • Automatyczne zarządzanie plikiem XML
  • zaimplementuj relacje 1 do N I N do 1
  • zaimplementuj jawne konwersje
  • Zastosuj dziedziczenie konfiguracje
 2
Author: Alessandro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-17 14:54:51

Z przyjemnością dodam Moo jako opcję, chociaż wyraźnie jestem stronniczy w stosunku do niego: http://geoffreywiseman.github.com/Moo/

Jest bardzo łatwy w użyciu dla prostych przypadków, rozsądny zdolny do bardziej złożonych przypadków, chociaż nadal są pewne obszary, w których mogę wyobrazić sobie wzmocnienie go dla jeszcze dalszych komplikacji.

 1
Author: Geoffrey Wiseman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-21 15:36:17

Możesz również wypróbować Framework mapowania oparty na Spycharce, ale z deklaracją mapowania Excela. Mają kilka narzędzi i dodatkowe fajne funkcje. Sprawdź w http://openl-tablets.sf.net/mapper

 1
Author: Ivan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-20 10:42:06
 0
Author: Sachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-05 16:31:05