前提・実現したいこと
Spring Boot を用いた開発において、application.propertyを環境ごとに動的に変更したい。
例)
ローカル環境:application-local.property
開発環境:application-dev.property
本番環境:application-prod.property
環境
macOS
IDE:STS
言語:Java
発生している問題
application-local.propertyに設定内容を記載し、環境変数を設定しても、本ファイルが読み込まれず、正常に起動しない。
→ application.propertyにリネームすると正常に起動して、APIも正常に動作するため、プロパティファイルの設定不備ではなく、プロパティファイルが読まれていないことが原因と考えています。
以下に詳細を記載いたします。
環境変数を読み込んで動的にapplication.propertyを切り替えて動作させるための設定を教えていただきたいです。
設定したこと
~./.bash_profileに、
export SPRING_PROFILES_ACTIVE=local
と記載し、
source ~/.bash_profile
で環境変数へ反映しています。printenvコマンドで
SPRING_PROFILES_ACTIVE=local
が表示されることは確認済みです。
試したこと
Javaプログラムから、
Map<String, String> env = System.getenv(); Iterator<String> ite1 = env.keySet().iterator(); Iterator<String> ite2 = env.values().iterator(); while (ite1.hasNext()) { System.out.println("変数名:" + ite1.next() + "[" + ite2.next() + "]"); } System.out.println("---"); String profiles = System.getenv("SPRING_PROFILES_ACTIVE"); System.out.println(profiles);
としていますが、
変数名:**** . . . 変数名:**** --- null
となり、環境変数を読み込めていないようでした。
回答1件
あなたの回答
tips
プレビュー