6

私の GWT アプリには 10 種類のエンティティがあります。現在、単純な古い DTO を使用して、GWT-RPC 経由で転送しています。これは、スタートアップなどの場合にうまく機能します。すべてを 1 つのリクエストにまとめることができます。

RequestFactory への切り替えを検討しているのは、アプリの有効期間中 (平均 30 分) に 1 つのエンティティを更新するだけで済むことが何度もあり、RequestFactory の統合/帯域幅節約機能が魅力的だからです。BUT: アプリの読み込み時にすべての初期化データを 1 回のリクエストでダウンロードする方法がわかりません。10 個のエンティティ タイプのすべての初期化データを取得するために 10 回の要求を行う必要はありません。

GeneralRequestContext などを作成する方法はありますか? 次のようなソリューションにも満足しています。

public interface InitDataProxy extends EntityProxy
{
    public UserProxy getInitUsers();
    public OrganizationProxy getInitOrganizations();
    ...
}

public interface GeneralRequestContext extends RequestContext
{
    Request<InitDataProxy> getInitData();
}

しかし、実際に InitDataProxy を何かでバックアップする必要がないため、これは機能しません。単一のリクエストでさまざまなタイプのプロキシを組み合わせるために使用したいだけです。

EntityProxyでは、関連のない複数のタイプのを 1 回のリクエストで受け取る方法はありますか?

また、通常の gwt-rpc リクエストを作成して、このデータを RequestFactory の外に出すこともできれば十分ですが、重複した DTO を実装して RequestFactory のプロキシの隣で実行し、DTO をコピーするカスタム コードを作成する必要はありません。彼ら!

4

1 に答える 1

4

InitDataProxy代わりに拡張できます。ValueProxyこれは、サーバー上のオブジェクトが何らかの種類の ID またはバージョンのセマンティクスを持っていることを必要としません。ドメイン側のInitData型は、おそらく匿名型で実装されたインターフェースである可能性があります。

interface InitData {
  User getUser();
  Organization getOrgatization();
}
class InitService {
  static InitData makeInitData() {
    return new InitData() { ..... };
  }
}

@ProxyFor(InitData.class)
interface InitDataProxy extends ValueProxy {
  UserProxy getUser();
  OrganizationProxy getOrganization();
}
@Service(InitService.class)
interface Init extends RequestContext {
  Request<InitDataProxy> makeInitData();
}
于 2011-02-12T15:36:14.977 に答える