首页 > 解决方案 > Koin: Single(override = true) {} 的解决方法

问题描述

当从 Koin 3.0.2 迁移到 3.1 时,我们注意到我们不能再做

loadKoinModules(module { single(override = true) { serviceMock } })

既然已经删除了“覆盖”参数,那么在新版本中解决此问题的方法是什么?

标签: kotlinkoin

解决方案


由于 Koin 3.1 覆盖是默认设置。具有相同映射的最后一个模块将覆盖前一个模块。

val myModuleA = module {
    single<Service> { ServiceImp() }
}
val myModuleB = module {
    single<Service> { TestServiceImp() }
}

startKoin {
    // TestServiceImp will override ServiceImp definition
    modules(myModuleA,myModuleB)
}

这是文档


推荐阅读