Configurationの改善 play.api.Configurationにカスタム型で読み取るための新しいメソッドが追加された。任意の型に対応したimplicitなConfigLoaderを使用することができる。詳細は以下を参照:
https://www.playframework.com/documentation/2.6.x/ScalaConfig
ConfigLoader
を定義し、configuration.get[任意の型]
とすることで、任意の型で読み取ることができるようになる。
case class AppConfig(title: String, baseUri: URI)
object AppConfig {
implicit val configLoader: ConfigLoader[AppConfig] = new ConfigLoader[AppConfig] {
def load(rootConfig: Config, path: String): AppConfig = {
val config = rootConfig.getConfig(path)
AppConfig(
title = config.getString("title"),
baseUri = new URI(config.getString("baseUri"))
)
}
}
}
// app.config = {
// title = "My App"
// baseUri = "https://example.com/"
// }
config.get[AppConfig]("app.config")