SSH 응용 중의 PO 와 VO 를 다시 논 하 다.

더 읽 기
    현재 주류 인 경량급 프레임 SSH 에서 JPA 규범 에 부합 한다 면 PO 모델 을 먼저 설계 한 다음 에 데이터 베 이 스 를 생 성 한다.
    PO (persistant object 영구 대상) 대상 모델 은 대상 간 의 관 계 를 나타 낸다. 예 를 들 어 한 쌍 이 많 고 여러 쌍 이 많 으 며 단 방향 쌍방 향 방문 관계 등 이다.데이터베이스 에 있 는 표 와 비 치 는 자바 대상 으로 볼 수 있 습 니 다.
    VO (value object 값 대상) 는 일반적으로 업무 층 간 의 데이터 전달 에 사용 되 며, WEB 응용 에 서 는 일반적으로 프론트 페이지 와 데이터 상호 작용 을 하 는 데 사용 된다.
    Struts 1. x 가 2. x 로 대 체 된 후에 VO 층 이 사 라 졌 고 action 에서 PO 를 직접 전달 하면 코드 가 간결 해 보이 고 많은 SSH 응용 프로그램 도 이렇게 한다.
    간단 한 ssh 에서 po 는 아래 와 같이:

@SuppressWarnings("serial")
@Entity
public class EmpInfo implements java.io.Serializable {
private Integer id;
private String empNo;
private WorkType workType;
private Set workExperiences = new HashSet(0);

//   get set   
}

    그러나 시스템 프레임 워 크 가 가로로 확장 되면 서 웹 서비스, json, 보고서 등 기능 이 추가 되면 서 문제 도 생 겼 다.
    웹 서비스 가 xfire 를 사용 하고 hibenate 한 쌍 의 다 중 관계 가 lazy 라면 PO 에 대응 하 는 set 에 무시 주 해 를 해 야 합 니 다. 예 를 들 어:

@IgnoreProperty
public Set getWorkExperiences() {
	return workExperiences;
}

그렇지 않 으 면 xfire 해석 은 사 순환 에 들 어가 기 쉽다.
    struts 2.1.6 에서 json 형식 을 출력 으로 사용 하 는 것 도 위의 문제 에 직면 하고 있다.PO 대상 에는 복잡 한 관계 가 포함 되 어 있 는데 만약 에 쌍방 향 이 라면 실 수 를 하기 쉽다. 실 수 를 피하 기 위해 우 리 는 PO 에서 해당 하 는 무시 주 해 를 해 야 한다. 구조 가 많 고 각종 주해 가 PO 에 섞 여 있어 서 매우 복잡 해 보인다. 마지막 에 이런 주해 가 도대체 어떤 기능 을 대표 하 는 지 알 수 없다.
    마지막 으로 저 는 VO 를 다시 사 용 했 습 니 다. 원래 PO 에 존재 하 는 일부 필드 도 VO 에 넣 을 수 있 습 니 다. 예 를 들 어 age, PO 는 데이터베이스 필드 에 완전히 대응 할 수 있 고 프론트 데스크 와 상호작용 이 필요 한 필드 를 VO 에 넣 을 수 있 습 니 다. 예 를 들 어 age (신분증 번호 에 따라 계산 할 수 있 습 니 다) 를 추가 하면 VO 에 간단 한 데이터 형식 을 저장 할 수 있 습 니 다. 예 를 들 어 위의 PO 에 있 는 WorkType (직원 직종 유형).VO 에서 바로 바 꿀 수 있어 요.
private String workTypeName;

이렇게 하면 프론트 데스크 에서 어떤 시스템 (webservice 와 doNet C \ # 상호작용 을 사용 하 든 flex, ajax json 등 을 사용 하 든) 을 사용 하 든 xml 형식 으로 전환 하 는 것 도 매우 간단 하고 보고 서 를 작성 하 는 것 도 전달 되 는 복잡 한 대상 과 서브 시트 를 어떻게 해석 하 는 지 지나치게 고려 하지 않 아 도 된다.사용자 관 계 는 WorkType. name 이지 WorkType 과 같은 종류 가 아 닙 니 다. VO 는 업무 층 에서 만들어 져 시각 층 이나 다른 각종 인터페이스 에 전 달 됩 니 다.이렇게 하면 차원 간 의 결합 을 더욱 풀 수 있 고 PO 대상 모델 도 쉽게 유지 할 수 있 습 니 다 (주석 이 많 지 않 고 코드 가 뚜렷 합 니 다).또한 전단 데이터 구 조 를 더욱 가 벼 워 지게 하고 (VO 는 모두 간단 한 데이터 형식) 전송 과 분석 에 유리 합 니 다.
    이상 은 제 가 최근 학습 에서 정리 한 것 입 니 다. 일반적인 응용 SSH (jsp) action 은 hibenate 의 PO 를 직접 사용 할 수 있 고 xml 해석 이 존재 하지 않 습 니 다.
    보충:
    복잡 한 대상 을 xml 또는 json 형식 으로 바 꾸 어 잘못 해석 한 문제 에 대해 저 는 이미 여러 번 만 났 습 니 다. 여러분 도 프로젝트 에서 만난 적 이 있 습 니까?어떤 좋 은 해결 방안 이 있 습 니까?

좋은 웹페이지 즐겨찾기