Com.typesafe.config.ConfigFactory
설정값 획득하는거
Example
Scala version
package com.my.api.utils
import scala.util.{Failure, Success, Try}
import java.io.File
import com.typesafe.config.ConfigFactory
object AppInfo {
val configFile = "application.conf"
val resourceObject = getClass.getResource("/" + configFile)
lazy val version = conf.getString("application.version")
lazy val host = conf.getString("application.host")
lazy val port = conf.getInt("application.port")
lazy val coreUrl = conf.getString("application.coreUrl")
lazy val pluginRootDir = Try(conf.getString("plugin.rootDir"))
lazy val apiUrl = conf.getString("application.apiUrl")
lazy val dbUrl = conf.getString("db.default.url")
lazy val dbPort = conf.getString("db.default.port")
lazy val dbUser = conf.getString("db.default.user")
lazy val dbPassword = conf.getString("db.default.password")
lazy val minioUrl = conf.getString("minio.url")
lazy val minioPort = conf.getString("minio.port")
lazy val minioAccessToken = conf.getString("minio.access-token")
lazy val minioSecretToken = conf.getString("minio.secret-token")
def conf = new File(configFile).exists() match {
case true =>
println(s"Config load success: ${configFile}")
ConfigFactory.parseFile(new File(configFile)).resolve()
case false =>
println(s"Config load Fail retry in ${resourceObject.getPath}")
// ConfigFactory.parseFile(new File(getClass.getResource("/" + configFile).getPath)).resolve() // sbt 에서 task로 실행시 정상적으로 진행되지 않는다.
ConfigFactory.parseURL(resourceObject).resolve()
}
}
사용 방법은, 그냥 가져다 쓰면 된다.
import com.my.api.utils.AppInfo
// ...
println(s"Server online at http://${AppInfo.host}:${AppInfo.port}/")