Kotlin ktor应用程序的StartKoin和install(Koin)之间有什么区别
我正在开发KTORAPI,我第一次添加DI。我看到事情有两种不同的处理方式,但我找不到一种方式让它们有不同的含义。有什么东西是启动时安装时没有的吗?如果您同时使用embeddedServer或EngineMain,这有关系吗 下面是为上下文安装的模块Kotlin ktor应用程序的StartKoin和install(Koin)之间有什么区别,kotlin,ktor,koin,Kotlin,Ktor,Koin,我正在开发KTORAPI,我第一次添加DI。我看到事情有两种不同的处理方式,但我找不到一种方式让它们有不同的含义。有什么东西是启动时安装时没有的吗?如果您同时使用embeddedServer或EngineMain,这有关系吗 下面是为上下文安装的模块 val mainModule = module(createdAtStart = true) { // this creates a global kmongo client for our db factory { KMongo.
val mainModule = module(createdAtStart = true) {
// this creates a global kmongo client for our db
factory { KMongo.createClient(System.getenv("MONGO_URI") ?: "") }
}
方式1:
fun main(args: Array<String>): Unit = EngineMain.main(args)
@Suppress("unused")
@kotlin.jvm.JvmOverloads
fun Application.module(testing: Boolean = false) {
startKoin {
modules(mainModule)
}
}
fun main(args:Array):Unit=EngineMain.main(args)
@抑制(“未使用”)
@kotlin.jvm.jvm重载
fun Application.module(测试:Boolean=false){
斯塔特科因{
模块(主模块)
}
}
方式2:
fun main(args: Array<String>): Unit = EngineMain.main(args)
@Suppress("unused")
@kotlin.jvm.JvmOverloads
fun Application.module(testing: Boolean = false) {
install(Koin){
modules(mainModule)
}
}
fun main(args:Array):Unit=EngineMain.main(args)
@抑制(“未使用”)
@kotlin.jvm.jvm重载
fun Application.module(测试:Boolean=false){
安装(Koin){
模块(主模块)
}
}
主要的区别是
**
* Start a Koin Application as StandAlone
*/
fun startKoin(appDeclaration: KoinAppDeclaration): KoinApplication = KoinPlatformTools.defaultContext().startKoin(appDeclaration)
安装
从ktor库中选取
可以实现不同的事情
startKoin
从哪里来
/**
* Feature installation script
*/
public fun install(pipeline: TPipeline, configure: TConfiguration.() -> Unit): TFeature