建構函式注入

可以通過 dagger 輕鬆建立沒有依賴關係的類。

public class Engine {

    @Inject // <-- Annotate your constructor.
    public Engine() {
    }
}

任何元件都可以提供此類。它本身沒有依賴關係,也沒有作用域。沒有必要進一步的程式碼。

依賴關係在建構函式中宣告為引數。只要可以提供這些依賴關係,Dagger 就會呼叫建構函式並提供依賴關係。

public class Car {

    private Engine engine;

    @Inject
    public Car(Engine engine) {
        this.engine = engine;
    }
}

如果此元件也可以提供其所有依賴項 -thuan1,則此類可以由每個元件提供。由於 Engine 也可以構造注入,任何元件都可以提供 Car

只要元件可以提供所有依賴項,就可以使用建構函式注入。如果元件可以提供依賴關係

  • 它可以通過使用建構函式注入來建立它
  • 元件的模組可以提供它
  • 它可以由父元件提供(如果它是 @Subcomponent
  • 它可以使用它所依賴的元件公開的物件(元件依賴性)