资源生命周期管理
所需依赖项:io.ktor:ktor-server-di
代码示例: server-di
依赖注入 (DI) 插件会在应用程序关闭时自动处理生命周期和清理。
AutoCloseable 支持
默认情况下,任何实现 AutoCloseable 的依赖项都会在应用程序停止时自动关闭:
kotlin
class DatabaseConnection : AutoCloseable {
override fun close() {
// 关闭连接,释放资源
}
}
dependencies {
provide<DatabaseConnection> { DatabaseConnection() }
}自定义清理逻辑
您可以通过指定 cleanup 函数来定义自定义清理逻辑:
kotlin
dependencies {
provide<ResourceManager> { ResourceManagerImpl() } cleanup { manager ->
manager.releaseResources()
}
}使用 key 进行作用域清理
使用 key 来管理命名资源及其清理:
kotlin
dependencies {
key<Closer>("second") {
provide { CustomCloser() }
cleanup { it.closeMe() }
}
}依赖项按照声明的相反顺序进行清理,以确保正确拆卸。
