問題タブ [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.
dependency-injection - Dagger で Kotlin を使用する
Dagger を使用して依存関係をクラス、特にアクティビティなどの引数のないコンストラクター クラスに注入するための最良の方法は何ですか? Dagger 2 は状況を改善する可能性がありますか?
前もって感謝します。
android - Dagger 2.0 を使用した単体テストでモジュール/依存関係をオーバーライドするにはどうすればよいですか?
単一の依存関係を持つ単純な Android アクティビティがあります。onCreate
次のように、アクティビティに依存関係を挿入します。
私ActivityUnitTestCase
の場合、依存関係を Mockito モックでオーバーライドしたいと考えています。モックを提供するテスト固有のモジュールを使用する必要があると思いますが、このモジュールをオブジェクト グラフに追加する方法がわかりません。
Dagger 1.x では、これは明らかに次のような方法で行われます。
上記に相当する Dagger 2.0 は何ですか?
私のプロジェクトとその単体テストは GitHub で見ることができます。
android - Android プロジェクトで DAGGER 依存性注入をゼロからセットアップする方法は?
ダガーの使い方は?Android プロジェクトで動作するように Dagger を構成するにはどうすればよいですか?
Android プロジェクトで Dagger を使用したいのですが、わかりにくいと思います。
編集: Dagger2 も 2015 年 4 月 15 日からリリースされており、さらに混乱しています!
[この質問は、Dagger1 についてさらに学び、Dagger2 についてさらに学ぶにつれて、回答に追加する「スタブ」です。この質問は、「質問」ではなくガイドです。]
dagger - Dagger と Dagger 2.0 の違いは何ですか?
Dagger と Dagger 2.0 の違いは何ですか?また、Google が既存のプロジェクトをフォークすることにしたのはなぜですか?
java - ダガー 2 クラスが生成されない
何か新しいことに挑戦して、Dagger 2 を DI フレームワークとして使用したいと考えています。したがって、プロジェクトには次の pom と「hello world」コーヒー メーカー クラス ( http://google.github.io/dagger/ ) があります。
しかし、mvn clean install を実行すると、クラスは生成されません。私が理解している限り、「Dagger_CoffeeShop」クラスが生成されているはずです。うーん...何が欠けていますか?
android - 2 つの異なる実装を持つ短剣モジュールでシングルトンを提供する方法
module
オブジェクトを提供する次の 2 つのメソッドを持つ短剣を想像してみてください。
私の例では、とインターフェイスStateCache
の両方を実装しています。のインスタンスを返す両方のメソッドの代わりに、両方のメソッドが明らかに同じインスタンスを指すようにしたいと思います。これはダガーでどのように達成できますか? はの 1 つのインスタンスへの参照を保持し、両方のメソッドがそれを返すようにしますか?Cache<User>
Cache<Settings>
StateCache
module
StateCache
android - Dagger 2 - さまざまなコンポーネントのモジュール
ApplicationModule
短剣 2 でこれを解決する方法がよくわかりません。この 1 つのモジュールだけを使用するモジュールApplicationContext
がApplicationComponent
あるとします。その上に がActivityModule
あり、ActivityComponent
それは に依存していApplicationComponent
ます。
ActivityComponent
のように構築されています
そして、アクティビティを挿入します。
これで、 my 内で宣言されているすべてのものを使用できるようにActivityModule
なりましたが、アクセスすることはできませんApplicationModule
。
では、問題は、それをどのように達成できるかということです。別のコンポーネントに依存するコンポーネントをビルドしても、最初のコンポーネントからモジュールにアクセスできますか?
編集
私は解決策を見つけたと思います.JakeによるDevoxxの話をもう一度見た後、私はそれを見逃す必要がありました.別のコンポーネントモジュールから使用したいものは何でも、そのコンポーネントで提供する必要があります.私は述べなければなりません、そしてそれは利用可能になるでしょう。かなりクール :)ApplicationModule
ApplicationComponent
Context provideContext();