자바 객체 대 객체 매핑을 위한 툴이 있습니까?
java를 사용하여 DO를 DTO로 변환하려고 하며, 자동 툴을 찾고 있습니다.같은 무료 툴이 있는지 알고 싶어서요.
그 주변에는 다음과 같은 라이브러리가 있습니다.
Commons-BeanUtils: ConvertUtils -> String 스칼라 값을 지정된 클래스의 객체로 변환하는 유틸리티 메서드.
Commons-Lang: 어레이 Utils -> 어레이, 원시 어레이(integer[] 등) 및 원시 래퍼 어레이(Integer[] 등)에서의 조작.
스프링 프레임워크: 스프링은 PropertyEditor를 매우 잘 지원합니다.PropertyEditor는 객체를 문자열로 변환하거나 문자열에서 변환하는 데도 사용할 수 있습니다.
Dozer: Dozer는 강력하면서도 단순한 Java Bean에서 Java Bean으로 데이터를 재귀적으로 복사하는 매퍼입니다.일반적으로 이러한 Java Bean은 서로 다른 복잡한 유형입니다.
모델 맵퍼:Model Mapper는 객체를 자동으로 서로 매핑하는 지능형 객체 매핑 프레임워크입니다.규칙 기반 접근 방식을 사용하여 객체를 매핑하는 동시에 특정 사용 사례를 처리하기 위한 간단한 리팩터링 안전 API를 제공합니다.
MapStruct: MapStruct는 빈 매핑을 위한 컴파일 시간 코드 생성기이므로 런타임에 고속(반사 등의 사용 없음), 의존 관계가 없는, 타입 세이프한 매핑 코드를 얻을 수 있습니다.
Orika: Orika는 바이트 코드 생성을 사용하여 최소한의 오버헤드로 고속 매퍼를 만듭니다.
Selma: 매핑용 컴파일 타임 코드 생성기
JMapper: 주석, XML 또는 API를 사용한 빈 매퍼 생성Smooks: Smooks JavaBean 카트리지를 사용하면 메시지 데이터(데이터 바인딩 등)에서 Java 개체를 만들고 채울 수 있습니다.superfilin in comments).Commons-Convert: Commons-Convert는 한 유형의 오브젝트를 다른 타입으로 변환하는 태스크 전용의 단일 라이브러리를 제공하는 것을 목표로 합니다.첫 번째 단계에서는 객체에서 문자열로 변환 및 문자열에서 객체로의 변환에 초점을 맞춥니다.(최종 갱신 2010)Transorph: Transorph는 한 유형의 Java 개체를 다른 유형의 개체로 변환하는 데 사용되는 무료 Java 라이브러리입니다(다른 시그니처가 있고 매개 변수가 될 수 있음).EZMorph: EZMorph는 개체를 다른 개체로 변환하기 위한 단순한 Java 라이브러리입니다.DynaBeans를 사용한 다차원 어레이 및 변환에 대한 원시 및 객체 변환을 지원합니다.Morph: Morph는 애플리케이션의 내부 상호 운용성을 용이하게 하는 Java 프레임워크입니다.정보가 애플리케이션을 통해 흐를 때, 정보는 여러 가지 변환을 거칩니다.Morph는 이러한 변환을 구현하는 표준 방법을 제공합니다.로렌츠:로렌츠는 일반적인 객체 대 객체 변환 프레임워크입니다.한 유형의 Java 개체를 다른 유형의 개체로 변환하기 위한 간단한 API를 제공합니다.-
OTOM: OTOM을 사용하면 임의의 오브젝트에서 다른 오브젝트로 데이터를 복사할 수 있습니다.가능성은 무한하다.'가을'에 오신 걸 환영합니다(죽음)
도저도 시도해봐
Dozer는 Java Bean에서 Java Bean으로 데이터를 재귀적으로 복사하는 매퍼입니다.일반적으로 이러한 Java Bean은 서로 다른 복잡한 유형입니다.
Dozer는 간단한 속성 매핑, 복잡한 유형 매핑, 양방향 매핑, 암묵적-명시적 매핑 및 재귀 매핑을 지원합니다.여기에는 요소 수준에서도 매핑이 필요한 매핑 컬렉션 속성이 포함됩니다.
다른 하나는 Orika - https://github.com/orika-mapper/orika
Orika는 한 개체에서 다른 개체로 데이터를 반복적으로 복사하는 Java Bean 매핑 프레임워크입니다.다층 애플리케이션을 개발할 때 매우 유용합니다.
Orika는 가능한 한 자동화에 중점을 두고 필요한 경우 구성 및 확장을 통해 맞춤화를 제공합니다.
Orika를 통해 개발자는 다음을 수행할 수 있습니다.
- 복잡하고 깊이 구조화된 객체 매핑
- 중첩된 속성을 최상위 속성에 매핑하여 "평탄화" 또는 "확장" 객체, 또는 그 반대
- 매핑의 일부 또는 전부를 제어하기 위해 즉시 매핑을 생성하고 커스터마이즈를 적용합니다.
- 유형별 또는 특정 속성 이름으로 개체 그래프 내 특정 개체 집합의 매핑을 완벽하게 제어할 수 있는 변환기 생성
- 프록시 또는 확장 객체 처리(Hibernate 또는 다양한 모의 프레임워크 등)
- 단일 구성으로 양방향 매핑 적용
- 대상 추상 클래스 또는 인터페이스에 적합한 구체적인 클래스의 인스턴스에 매핑
- 역매핑 처리
- JavaBean 사양을 초과하는 복잡한 규칙을 처리합니다.
Orika는 바이트 코드 생성을 사용하여 최소한의 오버헤드로 고속 매퍼를 만듭니다.
Model Mapper는 또 하나의 열람할 가치가 있는 라이브러리입니다.Model Mapper의 디자인은 다음과 같은 점에서 다른 라이브러리와 다릅니다.
- 소스 속성과 대상 속성을 지능적으로 일치시켜 객체 모델을 자동으로 매핑합니다.
- 문자열 대신 실제 코드를 사용하여 필드 및 메서드를 매핑하는 리팩터링 안전 매핑 API 제공
- 커스텀 시나리오의 심플한 처리를 위해 컨벤션 베이스의 구성을 활용합니다.
자세한 내용은 Model Mapper 사이트를 참조하십시오.
Apache Commons beanutils 사용:
static void copyProperties(Object dest, Object orig)
- 속성 이름이 동일한 경우 모두 원본 빈에서 대상 빈으로 속성 값을 복사합니다.
http://commons.apache.org/proper/commons-beanutils/
Java 매핑엔진/노트북 Nomin이 하나 더 있습니다.http://nomin.sourceforge.net
JMapper Framework를 사용해 보는 것이 좋습니다.
Java bean to Java bean mapper로 주석 및/또는 XML을 사용하여 데이터를 동적으로 전달할 수 있습니다.
JMapper를 사용하면 다음 작업을 수행할 수 있습니다.
- 타깃 오브젝트 작성 및 풍부화
- 매핑에 특정 로직을 적용합니다.
- XML 파일 자동 관리
- 1 대 N 및 N 대 1 관계를 구현합니다.
- 명시적 변환 구현
- 상속된 구성 적용
무를 옵션으로 추가하게 되어 기쁩니다.단, 저는 분명히 무에 편중되어 있습니다.http://geoffreywiseman.github.com/Moo/
간단한 케이스에서도 사용하기 쉽고, 복잡한 케이스에서도 합리적으로 사용할 수 있습니다.다만, 한층 더 복잡한 케이스에서도 개선할 수 있는 영역이 있습니다.
또한 Dozer를 기반으로 매핑 프레임워크를 시도할 수 있지만 Excel 매핑 선언을 사용할 수 있습니다.몇 가지 툴과 뛰어난 기능을 갖추고 있습니다.http://openl-tablets.sf.net/mapper에서 확인하세요.
언급URL : https://stackoverflow.com/questions/1432764/any-tool-for-java-object-to-object-mapping
'programing' 카테고리의 다른 글
rest api에서 데이터를 가져오기 위해 vuex 저장소를 처리하는 방법 (0) | 2022.08.15 |
---|---|
C로 base64 부호화(디코딩)하려면 어떻게 해야 하나요? (0) | 2022.08.15 |
"text"와 새로운 String("text")의 차이점은 무엇입니까? (0) | 2022.08.15 |
vue-resource를 사용하여 jsonp를 가져오는 방법 (0) | 2022.08.15 |
CSP에서 'unsafe-eval'을 사용하지 않는 Vuejs 브라우저 확장 (0) | 2022.08.15 |