[英]Difference between the @Singleton in module and @Singleton in component in Dagger 2
[英]Difference between module and component in Dagger2
有人可以告訴我Dagger2
module
和component
之間的基本區別是什么?
如果可能的話,請告訴我們一些例子,以便於理解。
我們可以在模塊中對依賴關系進行分組,例如,Network模塊可以提供HTTPClient Retrofit,GSON,HTTP Logger等。
類似地,我們可以擁有數據庫模塊,應用程序模塊或任何特定功能模塊。
組件是Module(提供者)和Activity / Fragment(Consumer)之間的橋梁,它可以有多個模塊。
在Activity / Fragment中,我們可以通過定義如下來獲得這些依賴
@Inject
Gson gson;
注入組件后,這些依賴關系將被實現(在這種情況下,網絡組件包含包含Gson Provider方法的網絡模塊)
getNetworkComponent().inject(MyActivity.this/MyFragment.this)
這是一個非常好的教程,簡單的例子 https://code.tutsplus.com/tutorials/dependency-injection-with-dagger-2-on-android--cms-23345
換一種說法
依賴性使用者通過連接器向依賴性提供者請求依賴性(Object)。
依賴提供者:
使用@Module注釋的類負責提供可以注入的對象。 這些類定義了使用@Provides注釋的方法。 這些方法返回的對象可用於依賴注入。
依賴性消費者:
@Inject注釋用於定義依賴項。
連接消費者和生產者:
@Component帶注釋的接口定義對象(模塊)提供者與表示依賴關系的對象之間的連接。 此連接的類由Dagger生成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.