問題タブ [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.
java - Singleton Dagger2 コンポーネント
Google appengine プロジェクトで Dagger2 を使用しており、特定のオブジェクト (MyObject) のシングルトン インスタンスを使用するサーブレットがいくつかあります。
次に、すべてのサーブレットで同じ IMyObject を取得できるように、DaggerMyComponent.create() もシングルトンにする必要があります。そうするために、私は
私の MyComponent インターフェイスに。ただし、それでも create() が誤って再度呼び出される可能性があり、必ずしも私にとってはかなりの解決策のようには見えません。
何か案は?
ありがとう!
dagger-2 - ダガー 2 ネームド セット インジェクション
注入ポイントがあります:
さらに、依存関係を提供するこのモジュールがあります。
しかし、dagger 2 APT は適切なクラスを作成できません。APT から次の例外が発生します。
誰も同じ問題を抱えていますか?良い回避策はありますか?
Named アノテーションをドロップすると、機能します。私はダガー2.0を使用しています
ありがとうございました
android - 静的グローバル変数としての Dagger2 コンポーネント
私の Android アプリには複数のアクティビティがあります。MainActivity はその onCreate() メソッドで Dagger2 コンポーネントを構築し、それを静的変数に割り当てます。これにより、クラスは静的メソッド MainActivity.getDaggerComponent() を呼び出して、依存関係を自分自身に注入できます。
私が発見した問題は、VideoPlayerActivity を起動すると、MainActivity オブジェクトが onPause() を呼び出すことがあるということです。これが発生すると、静的コンポーネント変数が null に設定されます。後で、VideoPlayerActivity はその依存関係を注入する必要がありますが、コンポーネントがないため、問題が発生します。
すべてのアクティビティで Dagger2 コンポーネントを常に使用できるようにするにはどうすればよいでしょうか?
android - 各フラグメント(またはアクティビティなど)の短剣2カスタムスコープ
私は、Dagger 2 でカスタム スコープを実行する 2 つの異なる方法を提案しているように見えるいくつかの異なる記事を見てきました。
構成変更を存続する MVP プレゼンター パート 2 ( Github リポジトリ):
- フラグメントごとに一意のカスタム スコープを
@Hello1Scope
使用し@Hello2Scope
ます。Hello1Fragment
Hello2Fragment
- フラグメントごとに一意のカスタム スコープを
-
- すべてのフラグメントに対して単一のカスタム スコープを使用し
@PerFragment
ます。
- すべてのフラグメントに対して単一のカスタム スコープを使用し
私の理解では、方法 2 のように、すべてのフラグメント (つまり ) に使用できる単一のスコープを定義しても問題ないよう@PerFragment
です。実際 (私が間違っている場合は訂正してください)、カスタム スコープの名前は無関係のようです。重要なのは、サブコンポーネントが作成される場所 (つまり、アプリケーション、アクティビティ、またはフラグメント) だけです。
ケース 1 のように、フラグメントごとに一意のスコープを定義するユース ケースはありますか?
android - Dagger 2 コンポーネントの継承とエラー
次のシナリオを作成しようとしています。
ダガー コンパイラは、応答として次のエラーを返します。
にはメソッドRestModule
が含まれており、ダガー コンパイラからを削除しても、コンポーネント ビルダーの生成に問題がない@Provides @Singleton RestClient provideRestClient()
ことも注目に値します。extends DaggerInjectionFactory
MyPreferencesComponent
私がやろうとしているのは、@Inject
アノテーションを使用したいすべての注入可能なクラスとのインターフェースを作成し、それらを私のコンポーネントの「すべて」に実装することvoid inject(MyActivity myActivity);
です。 .
私はフレームワークに慣れていないため、正しい用語が何であるかがわかりません。したがって、何を検索する必要があるかについての本当の手がかりがありません。
私の質問は次のとおりです。そのような構造を作成し、すべてのvoid inject()
メソッドを「すべて」のコンポーネントに自動的に追加するインターフェースを定義することは可能ですか? もしそうなら、どのようにそれを行うことができますか?
-- 編集 -- 予想される使用法は次のようになります。
dagger-2 - Dagger 2 のシングルトン スコープ
私は Dagger 2 で以下を設定しようとしています:
AnEventFinder
には 2 つの部分があります: aTriggerFinder
と an のArgFinder
それぞれには、多くの依存関係を持つ複雑なオブジェクトである多くの異なる実装があります。以下のコード サンプルは、別のオブジェクトに依存するEventFinder
with サンプルTriggerFinder
とを正常にビルドします。ただし、モデル間でシングルトンとして共有したい非常に大きく、高価な定数オブジェクトです。の現在の実装では、 2 回ロードされます。メソッドをとしてマークしようとすると、次のエラーが発生します。ArgFinder
WordNet
WordNet
WithWordNetEventFinderComponent
WordNet
@Provides
WordNetModule
@Singleton
しかし、注釈をコンポーネントのツリーの上に伝播@Singleton
しても、他のエラーが発生するだけです。これを行う正しい方法はどうなりますか?
完全なコード:
android-studio - Dagger2 でプロバイダーを見つける便利な方法
私は非常に大規模なプロジェクトを持っています。私が抱えている問題は、プロバイダーを見つけやすくしたいということです。
私は多くのモジュールを持っていますが、ほとんどの場合、それらはアプリケーションの開始時にオブジェクト グラフに挿入されたグローバル モジュールです。問題は次のとおりです。注釈でマークされたプロパティを見つけたとしましょう@Inject
。次に、プロバイダーをすぐに見つけられるようにしたいと考えています。どうやってやるの?Androidスタジオ2.0を使用しています