0

私はWSDLファーストを使用しています。私はWSDLを持っており、Mavenプラグイン'cxf-codegen-plugin'を使用してJavaコードを生成します。コードを使用する-最初のコードは、たとえば次のように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.
}

したがって、Code-First(Java-First)を使用すると、検証メソッドを使用してDTOを簡単に記述できます。クライアントは、検索条件が適切に満たされているかどうかを確認できます。このクラスは、@WebServiceで注釈が付けられたWebServiceクラスによって返されます。そして、これは機能します。

しかし、WSDL-Firstアプローチを使用してそのようなDTOを(何らかの方法で)作成するにはどうすればよいですか?

私はWSDL-Firstアプローチがとても好きです(多くの利点がありますが、これについて書く場所ではありません)が、メソッドを追加したいと思います...「貧血ドメインモデル」を書かず、クライアントが以前に満たされた検索基準をチェックできるようにしますサーバーに送信します。

4

1 に答える 1

1

あなたはさまざまな概念を混ぜ合わせているようです。貧血のドメインモデルが必要ないのはすばらしいことですが、それはDTOとは関係がなく、WSDLのクラスがどのように見えるかとは関係ありません。

DTOには状態がありますが、動作はありません。したがって、ゲッター/セッターのみがあり、ロジック(検証など)は含まれていません。

ドメインモデル内のオブジェクトには、状態動作があります(もちろん貧血でない限り)。

したがって、アーキテクチャに応じてDTOが必要な場合は、ビジネスオブジェクトをドメインモデルからDTOに、またはその逆に変換することになります。WSDL DTOから生成されたクラスを検討する場合は、それらをビジネスオブジェクトに変換する必要があります。この点での「変換」とは、状態を転送することを意味します。

于 2013-02-06T08:34:26.430 に答える