読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

Playでapplication.confから値を読み出したいな

scala Play

お題

playにはconf/application.confというファイルがあり、このファイルにはデータベースの設定などなどそういった設定ができる。
この設定にオレオレ設定を記入してPlayのcontrollersあたりから読み出せると便利なんじゃなかろうかと...

application.confに適当な値を書く

例えば

# This is the main configuration file for the application.
# ~~~~~

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!

opamp.test="HELLO"

#以下省略

という感じ。この"opamp.test"の値である"HELLO"を読みだしてみる。

Controllerにて

適当にcontrollers/Application.scala

package controllers

import play.api._
import play.api.mvc._
import play.api.Play.current //この行追加

object Application extends Controller {

  def index = Action {
    Ok(views.html.index((Play.application.configuration.getString("opamp.test")).get))
  }
}

としてみる。
ポイントは

Play.application.configuration.getString("Your.KEY")

であり、これでString型で指定した値を読み出すことができる。
今回は"opamp.test"を読み出す。

また、この戻り値はOption[String]であるため、上記のようにviews.html.indexがString型を要求している場合にはget関数で値を取り出してやる。
もちろん本当はもっとちゃんと書くべきである。

うまくいくとこんな感じ

f:id:opamp_sando:20140109160612p:plain

"HELLO"という表示がちゃんと出ている。

参考

Javaでのやり方などについては以下のURLに記載されている(と思う)
http://stackoverflow.com/questions/9844568/accessing-the-application-conf-properties-from-java-class-with-play-2-0

Firefox ブラウザ無料ダウンロード