2017-03-09 4 views
-1

プロファイルごとに別々のspring yaml構成ファイルがあります。Javaからスプリングプロファイル名を取得する方法

私はCommandLineRunner子孫クラスからプロファイルを読み、適切なスクリプトを実行する必要があります。

Javaから環境プロファイル名を取得する方法はありますか?

environment.getActiveProfiles(); 

をそれだけで、空の文字列配列を返します。

私はこれを試してみました。

答えて

2
  1. アクティブなプロファイルがありますか?いいえ、何も表示しません。
  2. environment.getProperty("spring.profiles.active")を使用してアクティブなプロファイルを取得することもできます。私は私のローカルシステムではSystem.getPropertyが働いていたことを観察したが、私のドッキングウィンドウコンテナシステムにしているので、私はSystem.getenvとはSystem.getPropertyの両方を使用しています

    private static final String SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE";  
    
        protected void setSpringProfile(ServletContext servletContext) { 
        if(null!= System.getenv(SPRING_PROFILES_ACTIVE)){ 
          profile=System.getenv(SPRING_PROFILES_ACTIVE); 
    
        }else if(null!= System.getProperty(SPRING_PROFILES_ACTIVE)){ 
         profile=System.getProperty(SPRING_PROFILES_ACTIVE); 
    
        }else{ 
         profile="local"; 
        } 
    
        log.info("***** Profile set ---> "+ profile);  
        } 
    

0

この方法は私のために正常に動作します。 getenv()が機能しました。

また、何も設定されていない場合は、プロファイルを「ローカル」プロファイルにデフォルト設定しています。

関連する問題