3

GWTのプロバイダーとAsyncProviderの違いは何ですか。私の理解では、どちらもコード分割と遅延インスタンス化に使用されます。だから私は決めることができません、その場合私たちはAsyncProviderではなくProviderに行きますか?

前もって感謝します!

4

1 に答える 1

6

Providerについてです:

  • 遅延インスタンス化(ただし、インスタンス化は瞬間的で同期的です)。参考までに、DaggerLazyはこのユースケースのタイプを紹介します。
  • オブジェクトのファクトリ:オブジェクトのスコープが設定されていない限り、を呼び出すとget()毎回新しいオブジェクトが提供されます
  • 寿命の長いスコープで寿命の短いオブジェクトを使用する:シングルトンスコープ(またはセッションスコープ)のオブジェクトからリクエストスコープのオブジェクトにアクセスする必要がある場合は、を使用する必要がありProviderます。そうしないと、からオブジェクトが注入されます。現在のリクエストスコープ。次のリクエストには使用できません。GINは、ここでは実際Singletonには適用されないスコープのみをサポートします。これは、上記のファクトリユースケースのバリエーションにすぎないためです。ただし、サーバー側(Guice、Spring DI、Daggerなど)では、サーブレットまたはRequestFactoryサービス/ロケーターがシングルトン(またはRFの場合は疑似シングルトン)であり、これはDIフレームワークの重要な部分です。

AsyncProvider非同期であり、への呼び出しをラップすることを除いて同じGWT.runAsync()です。

言い換えればAsyncProvider、実際にはコードの分割についてのみです。Providerコード分​​割の出力に影響を与えますが、他のファクトリ(手動でコーディングされたもの、またはGINのAssistedInject)と同じです。

于 2013-03-26T09:48:27.180 に答える