私はこのサンプルgithubプロジェクトKotlin-dev-proxyに従うことによって.properties
ファイルを使用しました。
サーバーは、app_environment
という環境変数を読み取り、適切なリソースファイルを使用します。
サンプルコード:
DbConfig.kt
data class DbConfig(
val dbHost: String,
val dbUsername: String,
val dbPassword: String,
val dbName: String,
val dbPort: Int)
ServerSettings.kt
class ServerSettings(settings: String) {
val resources = Properties()
init {
val fileUrl: URL = resources.javaClass.getResource("/$settings.properties")
?: throw FileNotFoundException("$settings.properties file not found")
fileUrl.openStream().use { resources.load(it) }
}
fun printSettings() = resources.stringPropertyNames().forEach {
println("Property: $it has value: '${resources[it]}'")
}
fun getString(key: String): String = resources[key]!! as String
fun getInt(key: String): Int = (resources[key]!! as String).toInt()
}
DbConfig.kt
fun provideDbConfig(): DbConfig {
val settings = ServerSettings(System.getenv("app_environment"))
settings.printSettings()
return DbConfig(
dbHost = settings.getString("dbHost"),
dbUsername = settings.getString("dbUsername"),
dbPassword = settings.getString("dbPassword"),
dbName = settings.getString("dbName"),
dbPort = settings.getInt("dbPort")
)
}
リソース/ develop.properties
# Local Db values
dbHost=localhost
dbUsername=postgresusername
dbPassword=postgrespassword
dbName=mydbname
dbPort=5432
アマゾンEBS、後藤のソフトウェア構成で展開しながら、環境のために環境変数の適切な(ステージング/生産)を追加します。
それぞれのプロパティファイルはどうですか?たとえば、 'config-local.properties'、' config-production.properties'など –
@ k.liakosヒントをお寄せいただきありがとうございます:)私はすでに同じ方法で問題を解決しています。私は私の答えに詳細な解決策を与えました。 – blizzard