😺
application.propertiesの値を環境変数に切り出す方法
目的
アプリケーションの設定 は、デプロイ環境(ステージング、本番、開発環境など)の間で異なり得る唯一のファイルなので、固定値を埋め込むのではなく値を外部に切り出して環境によって変更できるようにすること。
前提
本記事は、SpringBootで作成したプロジェクトの設定値を外部に切り出す方法のメモです。
shellはzshを前提とします。
本題
まず公式リファレンスを覗くと、色々やり方があるようです。
以下、公式より引用
You can use properties files, YAML files, environment variables, and command-line arguments to externalize configuration.
訳:設定を外部化するには、プロパティファイル、YAMLファイル、環境変数、コマンドライン引数を使用できます。
今回はこのうち環境変数に切り出す方法のみメモします(プロジェクトでもこの方法が多い気がしたので)
書式
${環境変数:デフォルト値}
デフォルト値は省略可能です。
補足
zshの場合は以下のコマンドで環境変数を設定できます。
export [設定したい環境変数名]=[設定したい値]
printenv
コマンドなどで確認して、設定した環境変数が表示されていればOKです。
*環境変数はshellからexitすると消えるので、環境変数を永続化するためにはshellファイルを利用する。Bashlなら~/.bash_profile
や~/.bashrc
、zshなら~/.zshrc
がshellファイルに当たる。
このファイルの中にexportで環境変数を追加する処理を加えれば、環境変数を永続化できる。
環境変数を追加する処理
今回はzshを使用しているため、下記を.zshrc
ファイルの中に追加で記載します。
export SAMPLE="fuwa"
.zshrc
ファイルが読み込まれないといけないので、Terminalを再起動します。
または、再起動せずにsourceコマンドで.zshrc
を読み込んでも良いです。
$ source ~/.zshrc
Terminal立ち上げ時に上記のexport行が必ず読み込まれるので、永続的な環境変数を設定できたことになります。
Discussion