какой-нибудь инструмент для сопоставления объектов Java с объектами?[закрыто]
Вопрос
Я пытаюсь преобразовать 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 для получения дополнительной информации:
Используйте Apache beanutils:
static void copyProperties (Object dest, Object orig)
-Скопировать значения свойств из исходного бина в целевой бин для всех случаи, когда имена свойств являются то же самое. р>
Существует еще один движок / фреймворк 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