私は誰かがすでにいるかもしれない状況にあります。私は自分のアプリケーションでGWTPを使用しています。 GWTPはクライアントサイドとしてGINを使用しています 依存性注入。また、GWTPはサーバー側に要求を送信するためにDispatcherメカニズムを使用します。GWT - GIN - GWTP - ディスパッチャ注入問題
GWTPによって注入されるいくつかのクラス(PRESENTERS)があります。私は注入なしで実行時に作成されるいくつかの他のクラスを持っています。例をあげましょう:非注入クラスの注入クラスにアクセスする必要があります。私はGWT.Create(Injector.class)メソッドを試していないと思うかもしれません。私はそれを試して、私はそのオブジェクトを非侵害クラスで取得することができますが、オブジェクトDispatcherは、それがベースURLに "/ dispatch /"をインクリメント(追加)する何か異なっています。つまり、私は内部的にGWTPと同じオブジェクトを持つ必要があります。そして、GWTPはエントリポイントにGIN INJECTORを作成します。
解決策の1つは、同じGIN INJECTORをクライアントサイドセッション(静的ハッシュマップ)に入れ、非注入クラスで使用することです(この解決策を試してみて、チャームのように働いています)。
私はより完全な解決策が必要です。
ありがとうございます。
@ Luishmahou:あなたに同意します。私は両方の方法を試しました。そして両方とも彼らの所で働いた。しかし、ディスパッチャーを階層のレベルに渡すことは私にとってはるかに難しい作業になるので、私は最初の選択肢が自分の状況に適していると思います。だから私は、静的なハッシュマップとしてクライアント側のセッションを作成し、そのハッシュマップにMyInjectorを作成して、今すぐ私はそれが欲しいと同じインスタンスを取得することができます。しかし、それを行う正しい方法ですか? –
解決策は私の答えの最後の段落にあります。あなたはクラスをリファクタリングする必要があるので、注入することができます。 私はGINを使い始めたときも同じ問題がありました。また、インジェクタを保持し、ディスパッチャや他のアプリケーションと同様の共通インスタンスを渡すために静的変数を使用しました。しかし、コンポーネントをテストするのが難しくなります。少しずつ私は私のプロジェクトをリファクタリングしました。今はすべてが注入されテスト可能です。 – Luismahou
私は同じことをやってみましょう....ありがとうございました。 –