問題タブ [dagger-2]

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 に答える
337 参照

java - Singleton Dagger2 コンポーネント

Google appengine プロジェクトで Dagger2 を使用しており、特定のオブジェクト (MyObject) のシングルトン インスタンスを使用するサーブレットがいくつかあります。

次に、すべてのサーブレットで同じ IMyObject を取得できるように、DaggerMyComponent.create() もシングルトンにする必要があります。そうするために、私は

私の MyComponent インターフェイスに。ただし、それでも create() が誤って再度呼び出される可能性があり、必ずしも私にとってはかなりの解決策のようには見えません。

何か案は?

ありがとう!

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

dagger-2 - ダガー 2 ネームド セット インジェクション

注入ポイントがあります:

さらに、依存関係を提供するこのモジュールがあります。

しかし、dagger 2 APT は適切なクラスを作成できません。APT から次の例外が発生します。

誰も同じ問題を抱えていますか?良い回避策はありますか?

Named アノテーションをドロップすると、機能します。私はダガー2.0を使用しています

ありがとうございました

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

android - 静的グローバル変数としての Dagger2 コンポーネント

私の Android アプリには複数のアクティビティがあります。MainActivity はその onCreate() メソッドで Dagger2 コンポーネントを構築し、それを静的変数に割り当てます。これにより、クラスは静的メソッド MainActivity.getDaggerComponent() を呼び出して、依存関係を自分自身に注入できます。

私が発見した問題は、VideoPlayerActivity を起動すると、MainActivity オブジェクトが onPause() を呼び出すことがあるということです。これが発生すると、静的コンポーネント変数が null に設定されます。後で、VideoPlayerActivity はその依存関係を注入する必要がありますが、コンポーネントがないため、問題が発生します。

すべてのアクティビティで Dagger2 コンポーネントを常に使用できるようにするにはどうすればよいでしょうか?

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

android - 各フラグメント(またはアクティビティなど)の短剣2カスタムスコープ

私は、Dagger 2 でカスタム スコープを実行する 2 つの異なる方法を提案しているように見えるいくつかの異なる記事を見てきました。

  1. 構成変更を存続する MVP プレゼンター パート 2 ( Github リポジトリ):

    • フラグメントごとに一意のカスタム スコープを@Hello1Scope使用し@Hello2Scopeます。Hello1FragmentHello2Fragment
  2. Android で Dagger 2 を試す:

    • すべてのフラグメントに対して単一のカスタム スコープを使用し@PerFragmentます。

私の理解では、方法 2 のように、すべてのフラグメント (つまり ) に使用できる単一のスコープを定義しても問題ないよう@PerFragmentです。実際 (私が間違っている場合は訂正してください)、カスタム スコープの名前は無関係のようです。重要なのは、サブコンポーネントが作成される場所 (つまり、アプリケーション、アクティビティ、またはフラグメント) だけです。

ケース 1 のように、フラグメントごとに一意のスコープを定義するユース ケースはありますか?

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

android - Dagger 2 コンポーネントの継承とエラー

次のシナリオを作成しようとしています。

ダガー コンパイラは、応答として次のエラーを返します。

にはメソッドRestModuleが含まれており、ダガー コンパイラからを削除しても、コンポーネント ビルダーの生成に問題がない@Provides @Singleton RestClient provideRestClient()ことも注目に値します。extends DaggerInjectionFactoryMyPreferencesComponent

私がやろうとしているのは、@Injectアノテーションを使用したいすべての注入可能なクラスとのインターフェースを作成し、それらを私のコンポーネントの「すべて」に実装することvoid inject(MyActivity myActivity);です。 .

私はフレームワークに慣れていないため、正しい用語が何であるかがわかりません。したがって、何を検索する必要があるかについての本当の手がかりがありません。

私の質問は次のとおりです。そのような構造を作成し、すべてのvoid inject()メソッドを「すべて」のコンポーネントに自動的に追加するインターフェースを定義することは可能ですか? もしそうなら、どのようにそれを行うことができますか?

-- 編集 -- 予想される使用法は次のようになります。

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

dagger-2 - Dagger 2 のシングルトン スコープ

私は Dagger 2 で以下を設定しようとしています:
AnEventFinderには 2 つの部分があります: aTriggerFinderと an のArgFinderそれぞれには、多くの依存関係を持つ複雑なオブジェクトである多くの異なる実装があります。以下のコード サンプルは、別のオブジェクトに依存するEventFinderwith サンプルTriggerFinderとを正常にビルドします。ただし、モデル間でシングルトンとして共有したい非常に大きく、高価な定数オブジェクトです。の現在の実装では、 2 回ロードされます。メソッドをとしてマークしようとすると、次のエラーが発生します。ArgFinderWordNetWordNetWithWordNetEventFinderComponentWordNet@ProvidesWordNetModule@Singleton

しかし、注釈をコンポーネントのツリーの上に伝播@Singletonしても、他のエラーが発生するだけです。これを行う正しい方法はどうなりますか?

完全なコード:

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

android-studio - Dagger2 でプロバイダーを見つける便利な方法

私は非常に大規模なプロジェクトを持っています。私が抱えている問題は、プロバイダーを見つけやすくしたいということです。

私は多くのモジュールを持っていますが、ほとんどの場合、それらはアプリケーションの開始時にオブジェクト グラフに挿入されたグローバル モジュールです。問題は次のとおりです。注釈でマークされたプロパティを見つけたとしましょう@Inject。次に、プロバイダーをすぐに見つけられるようにしたいと考えています。どうやってやるの?Androidスタジオ2.0を使用しています