問題タブ [gwt-gin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
596 参照

java - バインドをGINモジュールに動的に追加する

バインドをGINモジュールに動的に追加できますか?

たとえば、モジュール「ExampleModule」があり、その上で静的メソッドを呼び出します。たとえば、次のようになります。

とGINは自動的にバインドしますか?

または多分注釈を使用していますか?

前もって感謝します。

0 投票する
2 に答える
4798 参照

gwt - ギース/ジン。複数の実装を注入する方法

エントリ ポイントで依存関係を挿入するために GIN を使用する webapp があります。



別の RootView 実装を使用するモバイル バージョンが必要です。依存関係は、次のモジュールで説明されています

問題は、モバイル バージョンまたはデフォルト バージョンのどちらが必要かを条件付きで依存関係を選択する方法です。GWT-GIN Multiple Implementationsを見たことがありますが、プロバイダーが依存関係のチェーンを壊し、Factory パターンがテスト可能性を壊すため、その解決策を見つけていません。こちらの「Guice を使用した Big Modular Java」ビデオ(12 分) では、モジュールを使用した Guice のインジェクターが Factory の代替として紹介されました。したがって、私の質問は、アプリのモバイル バージョンとデフォルト バージョン (MobileFactory や DefaultFactory など) 用に異なる Ginjector を作成する必要があるか、それとも悪い習慣であり、必要なすべてのバージョンで Ginjector の 1 つのインスタンスを構成する必要があるかということです。たとえば、このような注釈バインディングを使用します。

GWT エントリ ポイントで @Mobile アノテーション付きバインディングを使用する


上記のような単純化された例では、可能かもしれません。ただし、アプリケーションに、モバイル バージョンとデフォルト バージョンを必要とする依存関係がさらにある場合。テスト不可能な「醜い」(Guiceのプレゼンテーションで言われたように)工場に戻ったようです。私の英語でごめんなさい。どんな助けでも大歓迎です。

0 投票する
1 に答える
526 参照

gwt - GWT.createによって作成されたインスタンスにGinを挿入します

オブジェクトをインスタンス化するカスタムの遅延バインダー(再バインドの実装)があります。GINによって満たされるGWT.create()によって返されるインスタンス内にいくつかの依存関係(@Inject注釈付きセッターメソッド)を持たせたいです。これは可能ですか?

したがって、次のようなコードが与えられます。

fooの最終的な実装に次のものがある場合:

GINによって自動的に返されたfooインスタンスにbarを注入するにはどうすればよいですか?

0 投票する
1 に答える
485 参照

gwt - gwt/gin を使用してプログラム/クラスごとに定数をバインドする

gwt/ginを使用してプログラム/クラスによって定数をバインドするにはどうすればよいですか?

それ以外の:

bindConstant().annotatedWith(AString.class).to("XYZ");

必要なもの: (明らかに、コンパイルされません)

bindConstant().annotatedWith(AString.class).to(CustomStringProvider.class);

この定数は Cookie/オフライン ストレージに保存されるためです。

0 投票する
1 に答える
1085 参照

gwt - GWTPコード分割

GWT 2.3でGWTP(GoogleのMVPフレームワーク)を使用しています。プレゼンターと一緒にGWTコード分割を使用したいと思います。

@ProxyCodeSplitプレゼンターの注釈について知っています。以下のように

これで十分ですか?または、ここA call to GWT.runAsyncのように提供するGWTコード分割を掘り下げる必要がありますか?

0 投票する
0 に答える
302 参照

gwt-gin - GUICEを使用したメソッド注入

次のステートメントを説明してください。•<strong>クラスのインスタンス化を制御しない場合、メソッドインジェクションが役立つ場合があります。いくつかの依存関係を必要とするスーパークラスがある場合にも使用できます。(コンストラクターの注入はこれを困難にします。)

コンストラクターの注入はどのようにこれを困難にしますか???? ありがとう

0 投票する
1 に答える
1921 参照

gwt - google-gin と組み合わせて gwt ui-binding を使用する

UIバインディングを介して作成されたウィジェットで依存性注入を使用する方法はありますか?

シンプルなウィジェットがあるとします (パッケージ com.example.client.ui.widget 内):

そして、このウィジェットを使用する ui バインディングを介して定義されたビューがあります。例えば:

UIバインディングで使用されるウィジェットの引数なしのコンストラクター制約のため、このように実行しても機能しません。しかし、@Inject アノテーションがあれば、GWT コンパイラーが単に GIN を使用するだけでいいのではないでしょうか? または、これは他の方法で行うことができますか?GIN と GWT の概念を完全に見逃しているかもしれません。もしそうなら、ヒントをいただければ幸いです。

前もって感謝します、マーカス

0 投票する
1 に答える
335 参照

gwt-mvp - Gin を使用して他のビューにビューを挿入する

私は MVP アーキテクチャ (または少なくとも 1 つの近似) を使用しており、同様にネストされたビューを持つプレゼンターの階層を持っています。簡単にするために、最初の 2 つのレベルに固執します。

最上位の AppPresenter/AppView。第 2 レベルの DocumentListPresenter/DocumentListView および TranslationPresenter/TranslationView。

2 つの第 2 レベルのビューはウィジェットとしてトップ レベル ビューのパネルに追加されますが、現時点では、2 つの第 2 レベルのプレゼンターをトップ レベルのプレゼンターに挿入し、トップ レベルのプレゼンターがそのビューにビューを渡すようにすることによって行われます。セッターメソッドを介して。

これはちょっと回りくどい方法のようです。Gin を使用して、プレゼンターがまったく関与することなく、2 番目のレベルのビューをトップ レベルのビューに挿入することは可能ですか?

0 投票する
1 に答える
276 参照

java - ジンで生成されたクラスをバインドする

com.google.gwt.core.ext.Generator(サブクラスを使用して) イベント ハンドラーのセットを動的に生成しようとしています。生成プロセス全体が正常に動作し、生成されたハンドラーはセッター インジェクション (@Inject アノテーション) を介して EventBus を受け入れます。全体的なアイデアは、これらの自動生成されたハンドラーがフードの下の (注入された) EventBus に自分自身を登録することです。問題は、これらすべてのハンドラーを何らかの方法でインスタンス化する必要があることです。GIN モジュールにバインドされるまで、GIN はそれらについて何も知りません。以下のようなもの:

このコードの問題は、gin モジュールも生成する必要があることです (これにはすべての bind(...) 命令が含まれます)。うまく動作しますが、生成されたモジュール (@Inject it) を生成されていない別のモジュールにインストールできないため、バインド命令が実行されます (install(MyDynamicModule.class) の結果として)。静的注入とプロバイダーを使用して汚いトリックを試しましたが、すべて成功しませんでした。

動的に生成された GIN モジュールを構成する方法はありますか? それとも、動的に生成されたハンドラーをインスタンス化して、セッター インジェクション (およびイベント バス登録) が発生するようにする方法はありますか?

サンプル コード スニペットは次のとおりです。

注意すべき重要なことは、これらの動的に生成されたすべてのハンドラーには、@Injected (EventBus とは別に) 他の依存関係があることです。そして、これらの依存関係 (それらのタイプ) はハンドラー固有のものです (AnotherHandlerSpecificComponent上記の例では)。したがって、GIN インジェクションをトリガーする方法でこれらのハンドラーをインスタンス化する必要があります (たとえば、依存関係を手動でインジェクトすることはできません)。

手がかりを事前にありがとう。私は完全に立ち往生しています...

0 投票する
2 に答える
889 参照

java - 2 つの Ginjector インスタンスで @Singleton を使用する

GWT プロジェクト セット (「メイン プロジェクト」、「ウィジェット プロジェクト」、「サービス アダプタ プロジェクト」) に循環依存の問題があります。主な参照ウィジェットとサービス アダプター。ウィジェットはサービス アダプタを参照します。そして、ここで問題が発生します。EventBus私は事実上どこにでも注射を使いたいと思っています。Ginjector インターフェイスはどこに配置すればよいですか?

さまざまなプロジェクトからクラスを注入できるように、すべてのプロジェクトから使用でき、すべてのプロジェクトからクラスを参照する必要があります。これは明らかにコンパイルできません。

ウィジェット用に別の Ginjector を使用し、EventBus. 2 つの別個の Ginjector が 2 つの別個GinModulesの両方を含む@Singleton EventBusバインディングを使用する場合、2 つのゲッターは同じEventBusインスタンスを返しますか?

注: これは Gin であり、Guice の質問ではありません。