Sta*_*lov 5 android kotlin koin
Koin 是否提供将多个依赖项绑定到集合中的功能,就像 Dagger 提供的多重绑定一样?
假设我有这个界面:
interface Initializer: (Application) -> Unit
Run Code Online (Sandbox Code Playgroud)
这个接口有几个实现,例如:
class LoggingInitializer: Initializer {
override fun invoke(p1: Application) {
Timber.plant(Timber.DebugTree())
}
}
Run Code Online (Sandbox Code Playgroud)
使用bind修饰符在不同模块中提供实现:
val coreToolsModules = module {
single { LoggingInitializer() } bind Initializer::class
}
Run Code Online (Sandbox Code Playgroud)
并且此类模块安装在应用程序的 Application 类中:
class TestApplication: Application() {
override fun onCreate() {
super.onCreate()
val startKoin = startKoin {
logger(PrintLogger())
androidContext(this@TestApplication)
modules(listOf(coreToolsModules))
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想将 Initializer 类的所有实现作为一个集合注入到我的 Application 类中,以便执行这样的初始化:
val initializers: Set<Initializer> by inject()
//in onCreate()
initializers.forEach { it.invoke(this) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |