2013-02-06 61 views
0

我首先使用WSDL。我有WSDL並使用Maven插件'cxf-codegen-plugin'生成Java代碼。利用二維碼的第一個可以寫入DTO例如:WSDL-first方法如何用一些(例如:驗證)方法編寫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. 
} 

因此,使用代碼優先(Java的第一個),很容易寫DTO與驗證方法。客戶可以檢查是否滿足搜索標準。該類將由通過@WebService標註的WebService類返回。這將工作。

但是如何使用WSDL-First方法編寫這樣的DTO(使用某種方法)?

我非常喜歡WSDL-First方法(它有許多優點,但這不是寫它們的地方),但我想添加方法...只是不寫「貧血域模型」,並允許客戶端檢查在發送到服務器之前完成搜索條件。

回答

1

您似乎在混合各種概念。很酷,你不想有一個貧血的領域模型,但這與你的DTOs沒有任何關係,而這又與WSDL的類看起來沒有關係。

A DTO有狀態但沒有行爲。因此,他們只有getter/setter,但不包含邏輯(例如驗證)。

域模型中的對象具有狀態行爲(當然,除非它們貧血)。

因此,如果需要DTO(取決於您的架構),您需要將業務對象從域模型轉換爲DTO,反之亦然。如果您考慮從您的WSDL DTO生成的類,那麼您就需要將這些類轉換爲您的業務對象。在這方面「轉換」意味着轉移他們的狀態。