How to differentiate between environments

预计阅读时间:1分钟

您可能要根据服务器是本地运行还是在生产计算机上执行其他操作.

Ktor并没有强加任何执行此操作的方法,但是如果您对此有所疑问,可以使用以下准则.

HOCON & ENV

您可以使用application.conf文件设置一个将保存环境的变量,然后在运行时检查该变量并确定要执行的操作. 您可以将其配置为检查环境变量KTOR_ENV并提供默认值dev . 然后在生产中设置KTOR_ENV=prod

例如:

application.conf:

ktor {
    environment = dev
    environment = ${?KTOR_ENV}
}

您可以从应用程序访问此配置,并使用一些扩展属性使您的生活更轻松:

fun Application.module() {
    when {
        isDev -> {
            // Do things only in dev   
        }
        isProd -> {
            // Do things only in prod
        }
    }
    // Do things for all the environments
}

val Application.envKind get() = environment.config.property("ktor.environment").getString()
val Application.isDev get() = envKind == "dev"
val Application.isProd get() = envKind != "dev"

by  ICOPY.SITE