java를 사용하여 DO를 DTO로 변환하려고 시도하고 자체 작성을 시작하기 전에 자동화 된 도구를 찾고 있습니다. 나는 무료로 사용할 수있는 무료 도구가 있는지 알고 싶었습니다.
java를 사용하여 DO를 DTO로 변환하려고 시도하고 자체 작성을 시작하기 전에 자동화 된 도구를 찾고 있습니다. 나는 무료로 사용할 수있는 무료 도구가 있는지 알고 싶었습니다.
답변:
당신은 Dozer를 시도 할 수 있습니다.
Dozer는 한 객체에서 다른 객체로 데이터를 재귀 적으로 복사하는 Java Bean to Java Bean 매퍼입니다. 일반적으로 이러한 Java Bean은 다른 복합 유형입니다.
Dozer는 단순 특성 맵핑, 복합 유형 맵핑, 양방향 맵핑, 암시 적 명시 적 맵핑 및 재귀 맵핑을 지원합니다. 여기에는 요소 레벨에서 맵핑해야하는 맵핑 콜렉션 속성도 포함됩니다.
주변에는 몇 가지 라이브러리가 있습니다.
Commons-BeanUtils : ConvertUtils-> 문자열 스칼라 값을 지정된 클래스의 객체로 변환하는 유틸리티 메소드, 문자열 배열은 지정된 클래스의 배열로 변환합니다.
Commons-Lang : ArrayUtils-> 배열, int []와 같은 기본 배열 및 Integer []와 같은 기본 래퍼 배열에 대한 작업.
스프링 프레임 워크 : Spring은 PropertyEditors를 훌륭하게 지원하며, 객체를 문자열로 /로부터 변환하는 데에도 사용할 수 있습니다.
Dozer : Dozer는 강력하면서도 간단한 Java Bean to Java Bean 매퍼로서 한 오브젝트에서 다른 오브젝트로 데이터를 재귀 적으로 복사합니다. 일반적으로 이러한 Java Bean은 다른 복합 유형입니다.
ModelMapper : ModelMapper는 자동으로 객체를 서로 매핑하는 지능형 객체 매핑 프레임 워크입니다. 특정 사용 사례를 처리하기위한 간단한 리팩토링 안전 API를 제공하면서 규칙 기반 접근 방식을 사용하여 객체를 매핑합니다.
MapStruct : MapStruct는 Bean 맵핑을위한 컴파일 타임 코드 생성기이므로 런타임시 빠른 (반사 또는 이와 유사한 사용법이 없음) 종속성이없고 유형이 안전한 맵핑 코드를 생성합니다.
Orika : Orika는 바이트 코드 생성을 사용하여 최소한의 오버 헤드로 빠른 매퍼를 만듭니다.
Selma : 매핑을위한 컴파일 타임 코드 생성기
JMapper : 콩 매퍼 생성 주석, XML 또는 API를 사용하여 (죽은, 마지막으로 업데이트 2 년 전 것)
Smooks 다음 Smooks 자바 빈즈 카트리지 만들고 자바 메시지 데이터에서 개체를 채울 수 있습니다 (에 즉, 바인딩 데이터) (제안 superfilin 의견). (더 이상 적극적으로 개발하지 않음)
Commons-Convert : Commons-Convert는 한 유형의 오브젝트를 다른 유형으로 변환하는 태스크 전용의 단일 라이브러리를 제공하는 것을 목표로합니다. 첫 번째 단계는 Object to String 및 String to Object 변환에 중점을 둡니다. (죽은 것, 마지막 업데이트 2010)
Transmorph : Transmorph은 한 유형의 Java 객체를 다른 유형의 객체로 변환하는 데 사용되는 무료 Java 라이브러리입니다 (다른 서명을 사용하여 매개 변수화 가능). (죽은 것으로 보인다, 마지막 업데이트 2013)
EZMorph : EZMorph는 Object를 다른 Object로 변환하기위한 간단한 Java 라이브러리입니다. 그것은 DynaBeans와 다차원 배열 및 변환을위한 기본 요소와 객체에 대한 변환을 지원 (것 죽은, 지난 2008 업데이트)
Morph : Morph는 애플리케이션의 내부 상호 운용성을 용이하게하는 Java 프레임 워크입니다. 정보가 응용 프로그램을 통해 흐르면 정보가 여러 번 변환됩니다. Morph는 이러한 변환을 구현하는 표준 방법을 제공합니다. (죽은 것, 마지막 업데이트 2008)
Lorentz : Lorentz는 일반적인 객체 간 변환 프레임 워크입니다. 한 유형의 Java 오브젝트를 다른 유형의 오브젝트로 변환하는 간단한 API를 제공합니다. (죽은 것처럼 보인다)
OTOM : OTOM을 사용하면 모든 객체에서 다른 객체로 데이터를 복사 할 수 있습니다. 가능성은 끝이 없습니다. "가을"에 오신 것을 환영합니다. (죽은 것처럼 보인다)
- 또 다른 하나는 Orika입니다 https://github.com/orika-mapper/orika
Orika는 한 객체에서 다른 객체로 데이터를 재귀 적으로 복사하는 Java Bean 매핑 프레임 워크입니다. 다층 애플리케이션을 개발할 때 매우 유용 할 수 있습니다.
Orika는 가능한 한 자동화에 초점을 맞추고 필요한 경우 구성 및 확장을 통해 사용자 지정을 제공합니다.
Orika를 통해 개발자는 다음을 수행 할 수 있습니다.
- 복잡하고 깊이 구조화 된 객체 매핑
- 중첩 된 속성을 최상위 속성에 매핑하거나 그 반대로 "Flatten"또는 "Expand"개체
- 매퍼를 즉시 생성하고 사용자 정의를 적용하여 일부 또는 모든 매핑을 제어
- 유형별 또는 특정 속성 이름별로 객체 그래프의 특정 위치에 대한 특정 객체의 매핑을 완벽하게 제어 할 수있는 변환기를 만듭니다.
- 프록시 또는 고급 개체 (Hibernate 또는 다양한 모의 프레임 워크와 같은) 처리
- 하나의 구성으로 양방향 매핑 적용
- 대상 추상 클래스 또는 인터페이스에 적합한 구체적인 클래스의 인스턴스에 매핑
- 역 매핑 처리
- JavaBean 스펙 이외의 복잡한 규칙을 처리하십시오.
Orika는 바이트 코드 생성을 사용하여 최소한의 오버 헤드로 빠른 매퍼를 만듭니다.
ModelMapper 는 체크 아웃 할 가치가있는 또 다른 라이브러리입니다. ModelMapper의 디자인은 다음과 같은 점에서 다른 라이브러리와 다릅니다.
자세한 정보는 ModelMapper 사이트를 확인하십시오.
Apache commons beanutils를 사용하십시오.
static void copyProperties(Object dest, Object orig)
-속성 이름이 동일한 모든 경우에 대해 원본 Bean에서 대상 Bean으로 특성 값을 복사하십시오.
Java 맵핑 엔진 / 프레임 워크 Nomin이 하나 더 있습니다 ( http://nomin.sourceforge.net) .
JMapper Framework 를 사용해보십시오 .
Java bean에서 Java bean mapper로 주석 및 / 또는 XML을 사용하여 데이터를 동적으로 전달할 수 있습니다.
JMapper를 사용하면 다음을 수행 할 수 있습니다.
나는 분명히 옵션에 대해 편견을 가지고 있지만 Moo를 옵션으로 추가하게되어 기쁩니다 : http://geoffreywiseman.github.com/Moo/
간단한 경우에는 사용하기가 쉽고 더 복잡한 경우에는 합리적이지만 여전히 더 복잡한 경우를 위해 향상시킬 수있는 영역이 있습니다.
Dozer를 기반으로하지만 Excel 매핑 선언을 사용하여 매핑 프레임 워크를 시도 할 수도 있습니다. 그들은 몇 가지 도구와 추가 멋진 기능을 가지고 있습니다. http://openl-tablets.sf.net/mapper 에서 확인하십시오.
new ObjectMapper().convertValue(...)
있습니다. Jackson은 주석 및 주석 믹스 인도 지원하므로 매우 좋은 옵션입니다.