any tool for java object to object mapping? [closed]
любой инструмент для сопоставления объектов Java с объектами?
Я пытаюсь преобразовать DO в DTO с помощью Java и ищу автоматизированный инструмент, прежде чем начать писать свой собственный. Я просто хотел узнать, доступен ли какой-либо бесплатный инструмент для того же.
Переведено автоматически
Ответ 1
Там есть несколько библиотек:
Commons-BeanUtils: ConvertUtils -> Служебные методы для преобразования строковых скалярных значений в объекты указанного класса, строковых массивов в массивы указанного класса.
Commons-Lang: ArrayUtils -> Операции с массивами, примитивными массивами (например, int[]) и примитивными массивами-оболочками (например, Integer[]).
Spring framework: Spring имеет отличную поддержку PropertyEditors, которые также можно использовать для преобразования объектов в строки / из них.
Dozer: Dozer - это мощный, но простой Java Bean для сопоставления Java Bean, который рекурсивно копирует данные с одного объекта на другой. Как правило, эти Java-компоненты будут разных сложных типов.
ModelMapper: ModelMapper - это интеллектуальная платформа сопоставления объектов, которая автоматически сопоставляет объекты друг с другом. Он использует основанный на соглашениях подход к сопоставлению объектов, предоставляя простой безопасный для рефакторинга API для обработки конкретных вариантов использования.
MapStruct: MapStruct - это генератор кода во время компиляции для bean-сопоставлений, что приводит к быстрому (без использования отражения или подобного), не зависящему и типобезопасному отображению кода во время выполнения.
Орика: Orika использует генерацию байт-кода для создания быстрых картографов с минимальными накладными расходами.
Selma: генератор кода для сопоставлений во время компиляции
JMapper: генерация Bean mapper с использованием аннотаций, XML или API (кажется мертвым, последнее обновление 2 года назад)
Smooks: Картридж Smooks JavaBean позволяет вам создавать и заполнять объекты Java из данных вашего сообщения (т. Е. Привязывать данные к) (предложено superfilin в комментариях). (Больше не находится в активной разработке)
Commons-Convert: Цель Commons-Convert - предоставить единую библиотеку, предназначенную для преобразования объекта одного типа в другой. Первый этап будет сосредоточен на преобразованиях объекта в строку и строки в объект. (кажется мертвым, последнее обновление 2010)
Transmorph: Transmorph - это бесплатная библиотека java, используемая для преобразования объекта Java одного типа в объект другого типа (с другой сигнатурой, возможно параметризованной). (кажется мертвым, последнее обновление 2013)
EZMorph: EZMorph - это простая библиотека java для преобразования объекта в другой объект. Он поддерживает преобразования для примитивов и объектов, для многомерных массивов и преобразования с помощью DynaBeans (кажется мертвым, последнее обновление 2008)
Morph: Morph - это платформа Java, которая упрощает внутреннюю совместимость приложения. По мере прохождения информации через приложение она подвергается множеству преобразований. Morph предоставляет стандартный способ реализации этих преобразований. (кажется мертвым, последнее обновление 2008)
Lorentz: Lorentz - это универсальный фреймворк преобразования объекта в объект. Он предоставляет простой API для преобразования объектов Java одного типа в объекты другого типа. (кажется мертвым)
OTOM: С помощью OTOM вы можете копировать любые данные из любого объекта в любой другой объект. Возможности безграничны. Добро пожаловать на "Осень". (кажется мертвым)
Dozer - это средство сопоставления Java Bean с Java Bean, которое рекурсивно копирует данные с одного объекта на другой. Как правило, эти Java Bean будут разных сложных типов.
Dozer поддерживает простое сопоставление свойств, сопоставление сложных типов, двунаправленное сопоставление, неявно-явное сопоставление, а также рекурсивное сопоставление. Это включает сопоставление атрибутов коллекции, которые также нуждаются в сопоставлении на уровне элемента.
Orika - это платформа сопоставления Java Bean, которая рекурсивно копирует (среди прочих возможностей) данные с одного объекта на другой. Это может быть очень полезно при разработке многоуровневых приложений.
Orika фокусируется на максимальной автоматизации, обеспечивая при необходимости индивидуальную настройку с помощью конфигурации и расширения.
Orika позволяет разработчику :
Отображение сложных и глубоко структурированных объектов
"Сглаживать" или "расширять" объекты путем сопоставления вложенных свойств со свойствами верхнего уровня и наоборот
Создавайте картографы "на лету" и применяйте настройки для управления некоторыми или всеми отображениями
Создавайте преобразователи для полного контроля над отображением определенного набора объектов в любом месте графа объектов - по типу или даже по определенному имени свойства
Обрабатывает прокси или расширенные объекты (например, в Hibernate или различных макетных фреймворках)
Примените двунаправленное сопоставление с одной конфигурацией
Сопоставьте экземпляры соответствующего конкретного класса для целевого абстрактного класса или интерфейса
Обрабатывает обратные сопоставления
Обрабатывает сложные соглашения, выходящие за рамки спецификаций JavaBean.
Orika использует генерацию байт-кода для создания быстрых картографов с минимальными накладными расходами.
Ответ 4
My ModelMapper - еще одна библиотека, которую стоит проверить. Дизайн ModelMapper отличается от других библиотек тем, что он:
Автоматическое сопоставление объектных моделей путем разумного сопоставления свойств источника и назначения
Предоставляет безопасный для рефакторинга API сопоставления, который использует реальный код для сопоставления полей и методов, а не строки
Использует конфигурацию на основе соглашений для простой обработки пользовательских сценариев
Посетите сайт ModelMapper для получения дополнительной информации: