kotlin - Koin: Single(override = true) {} 的解决方法
问题描述
当从 Koin 3.0.2 迁移到 3.1 时,我们注意到我们不能再做
loadKoinModules(module { single(override = true) { serviceMock } })
既然已经删除了“覆盖”参数,那么在新版本中解决此问题的方法是什么?
解决方案
由于 Koin 3.1 覆盖是默认设置。具有相同映射的最后一个模块将覆盖前一个模块。
val myModuleA = module {
single<Service> { ServiceImp() }
}
val myModuleB = module {
single<Service> { TestServiceImp() }
}
startKoin {
// TestServiceImp will override ServiceImp definition
modules(myModuleA,myModuleB)
}
这是文档