2016-09-14 13 views
0

私はspring mvcアプリケーションを作成しています。私は春のプロファイルの機能を利用したい。私は共通とプロファイル固有のプロパティを持つ単一のapplication.propertiesを持っていたい。私は同じファイルにデフォルトプロファイルを設定したいと思っています。私はこれをどのようにして行うのですか?1つのapplication.propertiesファイルに共通およびプロファイル固有のプロパティ

+0

なぜ単一のファイル...プロパティファイルの命名規則が既にあります。本当に単一のファイルに 'application.yml'ファイルを使用したいのであれば、私はフレームワークではなく、フレームワークで作業すると言います。 –

+0

yamlを使うと、springは、共通ファイルとプロファイル固有のすべての小道具を1つのファイルに入れることができます。ただし、.propertiesを使用して同じことはできません。私の理解は正しいのですか? –

答えて

0

あなたは動的に春のプロファイルに基づいてプロパティを返すために、余分な春の設定クラスを作成することができます。例えば戻ります

@Configuration 
@PropertySource("classpath:application.properties") 
public class QuotePropertyConfiguration { 

    @Inject 
    private Environment environment; 

    @Bean 
    public String getMySpecificProperty() { 
     return environment.getProperty("myprop." + Arrays.toString(env.getActiveProfiles()) + ".thing"); 
    } 
} 

myprop.dev.thing、myprop.test.thing、myprop.prod.thingなど、アクティブなスプリングプロファイルによって異なります。

別の方法としては、複数のapplication.propertiesファイルでこれを行うことができます:spring documentationから:ファイルをapplication.propertiesに加えて、

を、プロファイル固有 プロパティも命名規則 アプリケーションを使用して定義することができます - {profile} .properties。環境は、アクティブプロファイル が設定されていない場合(つまり、プロファイルが明示的にアクティブ化されていない場合、application-default.propertiesのプロパティ がロードされている場合)デフォルトの プロファイルのセット(デフォルトでは[default])を持ちます。