любой инструмент для сопоставления объектов 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 вы можете копировать любые данные из любого объекта в любой другой объект. Возможности безграничны. Добро пожаловать на "Осень".(кажется мертвым)
Ответ 2
Вы могли бы попробовать Dozer.
Dozer - это средство сопоставления Java Bean с Java Bean, которое рекурсивно копирует данные с одного объекта на другой. Как правило, эти Java Bean будут разных сложных типов.
Dozer поддерживает простое сопоставление свойств, сопоставление сложных типов, двунаправленное сопоставление, неявно-явное сопоставление, а также рекурсивное сопоставление. Это включает сопоставление атрибутов коллекции, которые также нуждаются в сопоставлении на уровне элемента.
Ответ 3
Еще один - Orika - https://github.com/orika-mapper/orika
Orika - это платформа сопоставления Java Bean, которая рекурсивно копирует (среди прочих возможностей) данные с одного объекта на другой. Это может быть очень полезно при разработке многоуровневых приложений.
Orika фокусируется на максимальной автоматизации, обеспечивая при необходимости индивидуальную настройку с помощью конфигурации и расширения.
Orika позволяет разработчику :
- Отображение сложных и глубоко структурированных объектов
- "Сглаживать" или "расширять" объекты путем сопоставления вложенных свойств со свойствами верхнего уровня и наоборот
- Создавайте картографы "на лету" и применяйте настройки для управления некоторыми или всеми отображениями
- Создавайте преобразователи для полного контроля над отображением определенного набора объектов в любом месте графа объектов - по типу или даже по определенному имени свойства
- Обрабатывает прокси или расширенные объекты (например, в Hibernate или различных макетных фреймворках)
- Примените двунаправленное сопоставление с одной конфигурацией
- Сопоставьте экземпляры соответствующего конкретного класса для целевого абстрактного класса или интерфейса
- Обрабатывает обратные сопоставления
- Обрабатывает сложные соглашения, выходящие за рамки спецификаций JavaBean.
Orika использует генерацию байт-кода для создания быстрых картографов с минимальными накладными расходами.
Ответ 4
My ModelMapper - еще одна библиотека, которую стоит проверить. Дизайн ModelMapper отличается от других библиотек тем, что он:
- Автоматическое сопоставление объектных моделей путем разумного сопоставления свойств источника и назначения
- Предоставляет безопасный для рефакторинга API сопоставления, который использует реальный код для сопоставления полей и методов, а не строки
- Использует конфигурацию на основе соглашений для простой обработки пользовательских сценариев
Посетите сайт ModelMapper для получения дополнительной информации: