異なる現在の環境プロファイルに基づいて異なるロジックをコーディングする必要があります。現在のアクティブなプロファイルとデフォルトのプロファイルをSpringからどのように取得できますか?Springで現在のアクティブ/デフォルト環境プロファイルをプログラムで取得するにはどうすればよいですか?
答えて
あなたは単にここEnvironmentAware
'@ Resource'(Spring 4.2)でも動作します –
を提供しています
@Autowired
Environment env;
環境をautowireすることができますが、より完全な例です。
Autowire環境
まず、環境Beanをautowireすることになるでしょう。
@Autowired
private Environment environment;
チェックプロファイルがアクティブプロファイル
に存在するならば、あなたは、プロファイルがアクティブなプロファイルのリストに存在するかどうかを調べるためにgetActiveProfiles()
を使用することができます。ここではString[]
をgetActiveProfiles()
から取得し、その配列からストリームを取得し、マッチャを使用して複数のプロファイルをチェックする(大文字と小文字を区別しない)ブール値を返す例を示します。
//Check if Active profiles contains "local" or "test"
if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
env -> (env.equalsIgnoreCase("test")
|| env.equalsIgnoreCase("local"))))
{
doSomethingForLocalOrTest();
}
//Check if Active profiles contains "prod"
else if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
env -> (env.equalsIgnoreCase("prod"))))
{
doSomethingForProd();
}
また、同様の機能は、ここで注釈@Profile("local")
を使用し達成することができ、この技術の詳細は、次のとおりです。Spring Profiles
を実装し、あなたはオートワイヤリングを使用していない場合は環境がString[] getActiveProfiles()
、String[] getDefaultProfiles()
、およびboolean acceptsProfiles(String... profiles)
@Profileは最適なソリューションのようです。 –
@Value("${spring.profiles.active}")
private String activeProfile;
は、それが動作し、あなたがEnvironmentAwareを実装する必要はありません。しかし、私はこのアプローチの欠点を知らない。
この行には次のエラーがあります: '原因:java.lang.IllegalArgumentException:" $ {spring.profiles.active} "のプレースホルダ 'spring.profiles.active'を解決できませんでした。 – zygimantus
User1648825の素敵な単純な答え(私はコメントすることはできませんし、私の編集が拒否された)の拡張:何のプロファイルが設定されていない場合、これは(私がnull値を取得)はIllegalArgumentExceptionをスローすることが
@Value("${spring.profiles.active}")
private String activeProfile;
を。あなたが設定する必要がある場合、これは良いことかもしれません。 @value、すなわちのために「デフォルト」構文を使用しない場合:
@Value("${spring.profiles.active:Unknown}")
private String activeProfile;
spring.profiles.activeは、あなたがより多くの細部を必要
- 1. Androidで現在の電話番号をプログラムで取得するにはどうすればよいですか?
- 2. spring boot embedded tomcatでクライアントリクエストスレッドの現在の数を取得するにはどうすればよいですか?
- 3. 現在の環境でtmuxを起動するにはどうすればよいですか?
- 4. Rakeで現在のRack環境を取得するには?
- 5. 現在の選択範囲の境界ボックスを取得するにはどうすればよいですか?
- 6. Applescriptで環境変数の値を取得するにはどうすればよいですか?
- 7. iOS:iPad/iPhoneで現在のネットワークアクティビティレベルをプログラムで読み取るにはどうすればよいですか?
- 8. Elastic Beanstalk環境でRDSインスタンスIDを取得するにはどうすればよいですか?
- 9. GAEフレキシブル環境でデータストアのAPI環境を登録するにはどうすればよいですか?
- 10. 別の場所から環境設定を取得するにはどうすればよいですか?
- 11. クラスタ環境でゼロデイタイムデプロイメントを行うにはどうすればよいですか?
- 12. プログラムで_GLOBAL_OFFSET_TABLE_アドレスを取得するにはどうすればよいですか?
- 13. プログラムでサーブレットフィルタインスタンスを取得するにはどうすればよいですか?
- 14. Jenkins Plugin実装から環境変数値を取得するにはどうすればよいですか?
- 15. Yiiでparamsなしで現在のURLを取得するにはどうすればよいですか?
- 16. Delphiで別のTimeZoneで現在時刻を取得するにはどうすればよいですか?
- 17. C#で現在の短いDateTime形式を取得するにはどうすればよいですか?
- 18. NSDateから現在までの日数を取得するにはどうすればよいですか?
- 19. 現在のジオポイントをiPhoneで一度しか取得するにはどうすればよいですか?
- 20. Pinaxで現在ログインしているユーザーを取得するにはどうすればよいですか?
- 21. GoogleSignInApiで現在ログインしているユーザーを取得するにはどうすればよいですか?
- 22. TWIGで現在のURLまたはルートを取得するにはどうすればよいですか?
- 23. Pythonで現在のファイル、現在のクラス、および現在のメソッドを取得するにはどうすればよいですか?ファイルの
- 24. VB.NETプログラムをMS DOS環境で実行するにはどうすればよいですか?
- 25. オブジェクトの現在の値を別のファイルで取得するにはどうすればよいですか?
- 26. Djangoのforms.pyで現在のユーザーのグループを取得するにはどうすればよいですか?
- 27. LinuxのCで現在のプロセスのプロセッサIDを取得するにはどうすればよいですか?
- 28. Windows環境で現在のユーザーをどのように見つけますか?
- 29. コンドーム環境をルート環境に「クローン」するにはどうすればよいですか?
- 30. iphone sdkのシミュレータでユーザーの現在地を取得するにはどうすればよいですか?
を解決できなかった場合は... activeProfileは今、「不明」が含まれています。 – aweigold
@aweigold:Spring 3.1で現在のアクティブ/デフォルトの環境プロファイルをプログラムで取得する3.1。どのような詳細が必要ですか? – Bobo
私は編集を申し出ました。私は完全な編集権を持っていません。できれば私の投票を元に戻します。 – aweigold