私はAndroid用のDagger2をちょっとやって遊んでいました。依存関係の注入方法については頭を抱えています。私は、コンポーネントを構築するために、このコードのより一般的な場所の1つがApplicationクラスにあることを理解しています。このようにして、私はさまざまなアクティビティからgetApplication()。getMyComponent()を呼び出し、関連するフィールドをアクティビティに注入できます。アクティビティの外部に注入するときにDagger2でコンポーネントを配置するにはどうすればよいですか?
しかし、私はPOJOを持っていて、別のPOJOをこの中に挿入したいとします(サービスオブジェクトにDAOオブジェクトが入っているとします)、POJOComponentを使って注入します。今、私はもはやアクティビティに(つまり、 'getApplication()'へのアクセスがないため)、私の質問はこれであり、前と同じようにApplicationクラスでこれを構築することはできません。サービスオブジェクトにコンポーネントを作成してDAOを注入するだけですか? DAOを別のオブジェクト/クラスに挿入したいのであれば、そのオブジェクトにもコンポーネントを構築する必要があるため、これは私には正しいとは思われません。
私はただ一度コンポーネントをビルドして、DAOを別のオブジェクト/クラスに注入する必要がありますか?私が考えることのできる1つの方法は、Applicationクラスで静的メソッドを使用していましたが、これはハックのように感じます。どんな指導もいただければ幸いです!
私が探していたのはまさにその答えでした。私が実装するとすぐに、それは最もクリーンな解決策であり、最も理にかなっています。歓声メイト。 – Shane