whitepaper-config: アプリケーション設定ツールキット
Scala アプリケーションの設定をサポートするツールキット whitepaper-config を作りました。
https://github.com/akr4/whitepaper/tree/develop/config
設定を Scala コードとして書いておくと、実行時に環境に応じた設定を選択します。
設定ファイルを外出しにする必要のない web アプリケーションなどに向いています。
環境の選択には
を使います。
使い方
まず設定クラスを用意します。名前、型はなんでも構いません。
trait Config { val dbUser: String val dbPassword: String }
次に環境ごとの設定を Environments に登録します。
val env = Environments("whitepaper", "dev" -> new Config { val dbUser = "dbUser_dev" val dbPassword = "dbPassword_dev" }, "prod" -> new Config { val dbUser = "dbUser_prod" val dbPassword = "dbPassword_prod" } )
あとは Environments.current メソッドにより環境に応じた設定を取り出すことができます。
env.current.dbUser // dbUser_dev または dbUser_prod
システムプロパティで環境を指定するには Environments の第1引数 + ".env" を使って
java -Dwhitepaper.env=dev ....
とします。
システムプロパティの指定がなければホスト名に一致する環境の設定が取り出されます。