какой-нибудь инструмент для сопоставления объектов Java с объектами?[закрыто]

StackOverflow https://stackoverflow.com/questions/1432764

  •  07-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь преобразовать DO в DTO с помощью java и ищу автоматизированный инструмент, прежде чем начать писать свой собственный.Я просто хотел узнать, есть ли какой-нибудь бесплатный инструмент для того же самого.

Это было полезно?

Решение

Вы можете попробовать Dozer .

  

Dozer - от Java Bean до Java Bean   картограф, который рекурсивно копирует данные   от одного объекта к другому. Как правило,   эти бобы Java будут отличаться   сложные типы.

     

Dozer поддерживает простое свойство   картографирование, комплексное картографирование типов,   двунаправленное картирование,   неявно-явное отображение, а также   рекурсивное отображение. Это включает   сопоставление атрибутов коллекции, которые   Также необходимо отображение на элементе   уровень.

Другие советы

Там есть несколько библиотек поблизости:

  • Общее достояние-BeanUtils:ConvertUtils -> Служебные методы для преобразования строковых скалярных значений в объекты указанного класса, строковых массивов в массивы указанного класса.

  • Общий язык-Lang:ArrayUtils -> Операции с массивами, примитивными массивами (например, int[]) и примитивными массивами-оболочками (например, Integer[]).

  • Пружинный каркас:Spring имеет отличную поддержку PropertyEditors, которую также можно использовать для преобразования объектов в строки / из них.

  • Бульдозер:Dozer - это мощный, но простой Java Bean для преобразования Java Bean в Java Bean mapper, который рекурсивно копирует данные из одного объекта в другой.Как правило, эти Java-компоненты будут разных сложных типов.

  • Моделировщик:ModelMapper - это интеллектуальная платформа отображения объектов, которая автоматически сопоставляет объекты друг с другом.Он использует основанный на соглашениях подход к отображению объектов, предоставляя простой безопасный для рефакторинга API для обработки конкретных вариантов использования.

  • Картографическая структура:MapStruct - это генератор кода во время компиляции для bean-сопоставлений, что приводит к быстрому (без использования отражения или чего-то подобного), не зависящему и типобезопасному отображению кода во время выполнения.

  • Орика:Orika использует генерацию байтового кода для создания быстрых картографов с минимальными накладными расходами.

  • Сельма:Генератор кода во время компиляции для сопоставлений

  • JMapper - файл:Генерация Bean mapper с использованием аннотаций, XML или API

  • Смуки:Картридж Smooks JavaBean позволяет вам создавать и заполнять объекты Java из данных вашего сообщения (т. е.привязать данные к) (предлагается суперфилин в комментариях). (Больше не находится в активной разработке)

  • Commons-Конвертировать:Commons-Convert стремится предоставить единую библиотеку, предназначенную для преобразования объекта одного типа в другой.Первый этап будет сосредоточен на преобразованиях объекта в строку и Строки в объект.(кажется мертвым, последнее обновление 2010)

  • Трансморф:Transmorph - это бесплатная библиотека Java, используемая для преобразования Java-объекта одного типа в объект другого типа (с другой сигнатурой, возможно, параметризованный). (кажется мертвым, последнее обновление 2013)

  • Эзморф:EZMorph - это простая java-библиотека для преобразования объекта в другой объект.Он поддерживает преобразования для примитивов и объектов, для многомерных массивов и преобразования с помощью DynaBeans (кажется мертвым, последнее обновление 2008)

  • Превращаться:Morph - это Java-фреймворк, который облегчает внутреннюю совместимость приложения.По мере прохождения информации через приложение она претерпевает многочисленные преобразования.Morph предоставляет стандартный способ реализации этих преобразований. (кажется мертвым, последнее обновление 2008)

  • Лоренц:Lorentz - это универсальный фреймворк преобразования объекта в объект.Он предоставляет простой API для преобразования Java-объектов одного типа в объекты другого типа. (кажется мертвым)

  • OTOM:С помощью OTOM вы можете копировать любые данные из любого объекта в любой другой объект.Возможности безграничны.Добро пожаловать в "Осень". (кажется мертвым)

Еще одна - Орика - https://github.com/orika-mapper/orika

Orika - это платформа отображения Java Bean, которая рекурсивно копирует (среди прочих возможностей) данные из одного объекта в другой.Это может быть очень полезно при разработке многоуровневых приложений.

Orika фокусируется на максимальной автоматизации, обеспечивая при этом индивидуальную настройку посредством конфигурирования и расширения там, где это необходимо.

Orika позволяет разработчику :

  • Отображение сложных и глубоко структурированных объектов
  • "Сглаживайте" или "Расширяйте" объекты, сопоставляя вложенные свойства свойствам верхнего уровня, и наоборот
  • Создавайте картографы "на лету" и применяйте настройки для управления некоторыми или всеми отображениями
  • Создавайте преобразователи для полного контроля над отображением определенного набора объектов в любом месте графа объектов - по типу или даже по определенному имени свойства
  • Обрабатывать прокси-серверы или расширенные объекты (например, в Hibernate или различных макетных фреймворках)
  • Применение двунаправленного отображения с одной конфигурацией
  • Сопоставление с экземплярами соответствующего конкретного класса для целевого абстрактного класса или интерфейса
  • Обрабатывать обратные сопоставления
  • Обрабатывайте сложные соглашения, выходящие за рамки спецификаций JavaBean.

Orika использует генерацию байтового кода для создания быстрых картографов с минимальными накладными расходами.

Моделировщик это еще одна библиотека, которую стоит посетить.Дизайн ModelMapper отличается от других библиотек тем, что он:

  • Автоматическое сопоставление объектных моделей путем разумного сопоставления свойств источника и назначения.
  • Предоставляет безопасный для рефакторинга API сопоставления, который использует фактический код для сопоставления полей и методов, а не использует строки
  • Использует конфигурацию на основе соглашений для простой обработки пользовательских сценариев

Посетите сайт ModelMapper для получения дополнительной информации:

http://modelmapper.org

Используйте Apache beanutils:

  

static void copyProperties (Object dest, Object orig)   -Скопировать значения свойств из исходного бина в целевой бин для всех   случаи, когда имена свойств являются   то же самое.

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

Существует еще один движок / фреймворк Java-картографа Номин: http://nomin.sourceforge.net . .

Я предлагаю вам попробовать Фреймворк JMapper.

Это Java bean для преобразования Java bean в Java bean mapper, позволяющий динамически выполнять передачу данных с помощью аннотаций и / или XML.

С помощью JMapper вы можете:

  • Создавайте и обогащайте целевые объекты
  • Примените определенную логику к отображению
  • Автоматическое управление XML-файлом
  • Реализуйте отношения от 1 до N и от N до 1
  • Реализовать явные преобразования
  • Применение унаследованных конфигураций

Я рад добавить Му в качестве опции, хотя, очевидно, я склонен к этому: http://geoffreywiseman.github.com/Moo/

Это очень легко использовать для простых случаев, разумно способных к более сложным случаям, хотя есть еще области, где я могу представить, как улучшить его для еще большей сложности.

Вы также можете попробовать картографический фреймворк, основанный на Dozer, но с декларацией отображения в Excel. У них есть некоторые инструменты и дополнительные интересные функции. Проверьте на http://openl-tablets.sf.net/mapper

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top