2013-02-06 4 views
0

WSDL을 먼저 사용하고 있습니다. 나는 WSDL을 가지고 메이븐 플러그인 'cxf-codegen-plugin'을 사용하여 자바 코드를 생성한다. 코드 - 첫 번째를 사용하면 예를 들어 DTO를 작성할 수 있습니다WSDL 첫 번째 접근 방식에서 일부 (예 : 유효성 검사) 메소드로 DTO를 작성하는 방법은 무엇입니까? 그냥 "빈혈 도메인 모델"을 쓰지 말것

public class ServiceSearchCriteria { 
    private String phoneNumber; 
    private String businessId; 

    public boolean validateSearchCriteria() { 
     if ((phoneNumber != null) || (businessId != null)) { 
      return true; 
     } 
     return false; 
    } 
    //... setters/getters etc. 
} 

그래서 코드 - 먼저 (자바 처음으로)가 검증 방법 DTO를 쓰기 쉽게 사용. 고객은 검색 기준이 충족되었는지 확인할 수 있습니다. 이 클래스는 @WebService로 주석 된 WebService 클래스에 의해 반환됩니다. 그리고 이것은 효과가 있습니다.

하지만 어떻게 이런 DTO (어떤 방법으로) WSDL-First 접근법을 사용하여 작성 하는가?

나는 WSDL-First 접근법 (많은 이점을 가지고 있지만 이것에 대한 글을 쓸 장소가 아니다)을 좋아하지만 메소드를 추가하고 싶다. "빈혈 도메인 모델"을 작성하고 클라이언트가 검사 할 수 있도록한다. 서버로 보내기 전에 충족 된 검색 기준.

답변

1

다양한 개념을 혼합 한 것 같습니다. 멋진 빈 도메인 모델을 갖고 싶지는 않지만 DTO와 아무런 관련이 없습니다. DTO는 WSDL의 클래스가 어떻게 보이는지와 관련이 없습니다.

DTO은 상태는 있지만 작동하지 않습니다. 따라서 그들은 getter/setter 만 가지고 있지만 논리가 없습니다 (예 : 유효성 검사).

도메인 모델의 개체는 상태가 (단, 빈혈이 아닌 경우)입니다.

아키텍처에 따라 달라지는 DTO가 필요한 경우 도메인 모델의 비즈니스 개체를 DTO로 변환하거나 그 반대로 변환 할 수 있습니다. 여러분의 WSDL DTO에서 생성 된 클래스가 괜찮 았다고 생각한다면, 이들을 당신의 비즈니스 객체로 변환해야한다. 이 점에서 "개종하다"는 것은 그들의 상태를 옮기는 것을 의미합니다.