Dagger Android 2.13を使用していて、アクティビティスコープの依存関係を設定中です。Dagger 2.13:コンストラクタが挿入されたクラスの制御範囲
私はモジュール内で宣言依存性のためにスコープを指定する方法を理解する:
@Module
public class MyActivityModule {
@Provides
@PerActivity
MyActivityDataRepo provideMyActivityDataRepo() {
return MyActivityDataRepo(); // simplified for the sake of clarity
}
}
しかし、どのように、私は、以下のようにコンストラクタ・インジェクションを経由して依存関係をグラフに追加されたクラスのスコープを指定するのでしょうか?
class MyActivityOtherDataRepo {
@Inject
MyActivityOtherDataRepo() {
}
}
このクラスを作成する方法はありますか。アクティビティスコープはMyActivity
ですか?
メンバーインジェクションを介してMyActivity
に注入されるとすぐに有効スコープになりますか?もしそうなら、スコープをMyActivity
に限定する方法がありますか?私が考えることができるのは、MyActivityOtherDataRepo
パッケージをプライベートにして、MyActivity
と同じパッケージに入れることです。
よくコンストラクタインジェクションを使用せず、モジュール内のメソッドからのみ提供することができます。次に、このモジュールを使用する単一コンポーネントに含めます。私はどんな利点も見ません、そして、あなたはより多くの不必要な複雑さを導入するでしょう。 –