application.conf内で使える変数
変数 | 説明 |
---|---|
${application.path} | アプリケーションの置かれている絶対パス。末尾にスラッシュを含まない。 |
${play.path} | playframeworkの置かれている絶対パス。末尾にスラッシュを含まない。 |
その他、javaのシステム変数を参照できる。(System.getProperty
で取得できるもの)
${user.home}
、${user.language}
、${os.name}
、など。
インクルード
別のファイルに書いておいて、application.conf の一部として取り込む機能がある。
@include.mime = mime-types.conf
# Web fonts
mimetype.eot = application/vnd.ms-fontobject
mimetype.otf = application/octet-stream
mimetype.ttf = application/octet-stream
mimetype.woff = application/x-font-woff
設定セクション単位で別ファイルにする、という管理もアリな気がする。
ちなみに、DEVモードでは、インクルードされるファイルの更新もチェックしていて、ちゃんとリロードされる仕組みになっているようだ。
チェック対象となるファイルは、Set<VirtualFile> play.Play.confs
で保持されている。
フレームワークID
開発時、製品時、負荷分散のための複数サービス稼働、などアプリケーションに対していくつかの設定を切り替えたい場合がある。
そのような場合であってもすべての環境の設定は application.conf
に記載する。
環境の区別はフレームワークIDで行い、設定項目のプリフィクスとして指定する。
フレームワークIDは%test
は、auto-test
など組み込みのテスト用に予約済み。データベースの接続先をテスト用に切り替えたりといった用法が考えられる。
%test.application.mode=dev
%test.application.log=DEBUG
%test.application.log.system.out=on
フレームワークIDは playをサービスとして動かす場合や、war形式でデプロイする場合などに指定することができる。
$ play run --%myproduct
$ play war -o sample --zip --%myproduction
フレームワークIDを指定した場合は、フレームワークIDが指定されている設定が優先的に適用される。
フレームワークID固有の設定が見つからない場合は無指定の設定が適用される。
無指定の設定が見つからない場合はデフォルトの設定が適用される。
アプリケーションの実行モードは大きく分けて、開発モード(DEV)と製品モード(PROD)の2つある。application.mode
で設定する。
もちろんフレームワークIDを付けることができるので、環境により開発モードと製品モードを切り替えることができる。