😺

application.propertiesの値を環境変数に切り出す方法

2021/11/14に公開

目的

アプリケーションの設定 は、デプロイ環境(ステージング、本番、開発環境など)の間で異なり得る唯一のファイルなので、固定値を埋め込むのではなく値を外部に切り出して環境によって変更できるようにすること。

前提

本記事は、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