Hilt DI 的问题
Problems with Hilt DI
抱歉这个问题,我以前从来没有用过Dagger/Hilt。无法理解如何在我的应用程序中注入依赖项。这是现在的内容:
@InstallIn(Application::class)
@Module
abstract class RepositoryModule {
@Binds
abstract fun bindProductRepository(productRepository: ProductRepository): IProductRepository
@Binds
abstract fun bindCategoryStorage(categoryStorage: CategoryStorageImpl) : CategoryStorage
companion object {
@Provides
@Singleton
fun createRoomDataBase(@ApplicationContext context: Context) : ProductRoomDatabase = ProductRoomDatabase.getDatabase(context)
@Provides
@Singleton
fun createProductDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.productDao()
@Provides
@Singleton
fun createCategoryDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.categoryDao()
}
}
有很多关于这个主题的课程和教程,但大多数只是改写原始文档。我强烈建议您阅读官方 Android 网站上的这份文档
https://developer.android.com/training/dependency-injection/hilt-android
Hilt 附带三个预制组件:
ApplicationComponent | SingletonComponent
- 包含应用程序级依赖项并在应用程序运行前一直存在的组件。
ActivityComponent
- 包含 Activity
级依赖项的组件
FragmentComponent
- 包含 Fragment
级别依赖项的组件
InstallIn
注释表明当前模块中的所有依赖项都将在注释的参数中可用。
抱歉这个问题,我以前从来没有用过Dagger/Hilt。无法理解如何在我的应用程序中注入依赖项。这是现在的内容:
@InstallIn(Application::class)
@Module
abstract class RepositoryModule {
@Binds
abstract fun bindProductRepository(productRepository: ProductRepository): IProductRepository
@Binds
abstract fun bindCategoryStorage(categoryStorage: CategoryStorageImpl) : CategoryStorage
companion object {
@Provides
@Singleton
fun createRoomDataBase(@ApplicationContext context: Context) : ProductRoomDatabase = ProductRoomDatabase.getDatabase(context)
@Provides
@Singleton
fun createProductDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.productDao()
@Provides
@Singleton
fun createCategoryDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.categoryDao()
}
}
有很多关于这个主题的课程和教程,但大多数只是改写原始文档。我强烈建议您阅读官方 Android 网站上的这份文档 https://developer.android.com/training/dependency-injection/hilt-android
Hilt 附带三个预制组件:
ApplicationComponent | SingletonComponent
- 包含应用程序级依赖项并在应用程序运行前一直存在的组件。
ActivityComponent
- 包含 Activity
级依赖项的组件
FragmentComponent
- 包含 Fragment
级别依赖项的组件
InstallIn
注释表明当前模块中的所有依赖项都将在注释的参数中可用。