Playframework application.confに環境変数をbindする

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

環境ごとに異なる設定値をapplication.confに設けます。


OSの環境変数設定

~/.bash_profileとかに、

export SECRET_KEY="****"

と記述しておく。source ~/.bash_profileしておこう。


application.confの記述

環境変数は${?varName}で読み込めます。envvalの部分は分かり易い識別子を自由に記述してよい。

envval.secret_key = ${?SECRET_KEY}


システムからConfigurationを参照する

ConfigurationインスタンスはDIコンテナに登録済みなので以下のように注入できる。(逆に注入せずコード側でインスタンスを生成する方法が知りたい(^_^;))

class HomeController @Inject()
  (controllerComponents: ControllerComponents, config: Configuration)
  extends AbstractController(controllerComponents) {

  val secretKey = configuration.get[String]("envval.secret_key")
...
}

getメソッドでapplication.confに定義した変数名のリテラルを指定すると設定値が参照できます。