자바 bean 대상 간 복사 속성

2544 단어 자바bean대상
현재 기업 급 자바 응용 프로그램 에서 자바 빈 은 광범 위 하 게 응용 되 고 있다.DTO, DAO, BO, POJO, VO 등 과 관련 된 구분 도 생 겨 났 다.여 기 는 이러한 개념의 세부 사항 에 관여 하지 않 습 니 다. 관심 이 있다 면 구 글, 예 를 들 어 이 글 을 사용 할 수 있 습 니 다.여기 서 토론 하고 자 하 는 문 제 는 어떻게 서로 다른 자바 빈 대상 사이 에서 그들의 속성 을 복제 하 는 것 입 니까?이것 은 몇 가지 상황 을 고려 해 야 한다.
  • 소스 대상 과 목표 대상 의 유형 이 다 를 수 있 습 니 다
  • 부분 만 복사 하고 싶 은 대상
  • 복사 할 대상 의 속성 이름 이 다 릅 니 다
  • 어떻게 딥 복사 (deep copy) 를 실현 합 니까?

  • 현재 몇 개의 Bean copy 라 이브 러 리 를 사용 할 수 있 습 니 다.
  • Dozer
  • Apache common-beanutils
  • Spring BeantUtils class
  • Others

  • Dozer Dozer 는 기능 이 강 한 Bean 복사 라 이브 러 리 입 니 다.Annotation, API 또는 XML 을 통 해 Map 규칙 을 정의 할 수 있 습 니 다.XML 은 가장 간단 하고 수정 이 편리 하 며 침입 이 아 닌 방식 입 니 다.가장 간단 하고 서로 다른 유형, 서로 다른 속성 이름 의 변환 을 제외 하고 Dozer 는 다음 을 지원 합 니 다.
  • 서로 다른 유형의 속성 간 의 전환, 예 를 들 어 문자열 이 날짜 형식 으로 바 뀌 었 습 니 다.또는 맞 춤 형 유형 변환
  • 매 거 유형
  • 집합 속성 복사 및 Array, List, Set 간 전환 지원
  • Map 유형의 전환
  • 색인 속성
  • 딥 카피
  • 부분 복제
  • 단 방향 복사
  • 표현 식

  • 이외에 도 스프링, JMX, JAXB 통합 을 제공한다.만약 사실 대부분의 경우, 우 리 는 이렇게 강력 한 기능 을 필요 로 하지 않 는 다.예 를 들 어 우 리 는 단지 클론 의 기능 이 필요 할 것 이다.Apache common - beanutils 와 Spring BeanUtils 류 를 사용 하 는 것 을 고려 할 수 있 습 니 다.Apache common - beanutils BeanUtils 클래스 는 두 가지 변환 방법 을 제공 합 니 다.
    static void copyProperties(Object dest, Object orig)
    static void copyProperty(Object bean, String name, Object value)

      두 번 째 방법 은 특정한 속성 을 복사 하 는 데 쓰 인 다.속성 이름 이 같 아야 합 니 다. 형식 이 다 르 면 기본 데이터 변환 을 실행 할 수 있 습 니 다.얕 은 복 제 를 실행 하 다.그것 은 또 하나의 clone 방법 을 제공 했다.
    static Object cloneBean(Object bean)

    Spring BeanUtils Spring BeanUtils 는 더 많은 기능 을 제공 합 니 다.
    static void copyProperties(Object source, Object target)
    Copy the property values of the given source bean into the target bean.
    static void copyProperties(Object source, Object target, Class<?> editable)
    Copy the property values of the given source bean into the given target bean, only setting properties defined in the given "editable" class (or interface).
    static void copyProperties(Object source, Object target, String... ignoreProperties)
    Copy the property values of the given source bean into the given target bean, ignoring the given "ignoreProperties".

      복사 할 속성 (두 번 째 방법) 을 지정 하거나 일부 속성 (세 번 째 방법) 을 제거 할 수 있 습 니 다.
    이미
    0 명 댓 글 달 고 강 타 - >
    여기 < - 토론 참여
    ITeye 추천
  • - 소프트웨어 인 재 는 언어 저 담 보 를 면제 하고 미국 에 가서 유급 으로 대학원 에 다 닙 니 다! -
  • 좋은 웹페이지 즐겨찾기