このドキュメントについて
- Spring Bootで本番環境と開発環境で設定どうやってわけるねんってなったので、調べたときのメモ
- Cloud Foundry使ってるのでそこでのやり方も記載する
先にまとめ
- 環境ごとにapplication-環境名.ymlみたいなファイルをつくる
- 環境変数か起動時のオプションで変更する
- Cloud Foundryでやる場合はenvに設定すれば切り替えてくれる
application.ymlを環境ごとにつくる
- ここでは、APIのURIをapplication.ymlで設定しているケースを想定している
- 下記のそれぞれをresources配下に設置する(ちなみに名前はなんでもいい)
application-staging.yml
api:
hostname: http://staging.example.com
path: /v1/hello
application-production.yml
api:
hostname: http://production.example.com
path: /v1/hello
起動時の引数で環境を指定する
起動に下記のオプションを指定する
$ java -jar -Dspring.profiles.active=production 起動したいjarファイル
環境変数で環境を指定する
実行したい環境で下記コマンドで環境変数を指定する
$ export spring_profiles_active=production
Cloud Foundryの場合、manifest.ymlで環境を指定する
manifest.ymlに下記を指定する
applications:
- name: application-name
...
env:
SPRING_PROFILES_ACTIVE: production