建構函式注入
可以通過 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
) - 它可以使用它所依賴的元件公開的物件(元件依賴性)