2016-04-19 10 views
2

たとえば、次のような異なるプロファイル間で共有される共通のプロパティがあります。一時ファイルとパスのパスの場所は、異なるenv(tst、prd)間で同じです。Spring-Bootアプリケーションを使用したapplication- {profile} .propertiesの親プロパティ

親アプリケーションを持つ方法はありますか?{parent} .propertiesは、すべてのプロファイル固有のプロパティファイルがプロパティを継承することができます。すべての用途向け{プロファイル}で書くと同じ性質を回避するのに役立つだろう

はまた

を.propertiesファイル、各application-{profile}.propertiesのようなものがあります。ここでは

profileLocation=xxx 
abc=${profileLocation}/tempPath 

を私は共通の場所にABCを移動することができます?私は実際に、それは、application.propertiesは、任意の他のものの前にロードされていることを完全に真実ではない用途向け{プロファイルは}

+1

これは 'application.properties'のためのものです...まず最初にロードされたプロファイル固有のもの... –

+0

が正しいです。それはそのまま動作します。ありがとうございました。Deinum – explorer

+0

プロパティは同じですが、接頭辞はプロファイル固有です。例えば$ {プロファイル固有のベースパス}/tempLocationプロファイル特有のプロパティがapplication.propertiesよりも遅くロードされると、これをどのように達成できますか? – explorer

答えて

0

を.propertiesの前に、それがロードされるようにapplication.propertiesにできません。それらは一緒に処理されます。すべてのプロファイルで使用される共通のプロパティを設定するには、通常のapplication.propertiesファイルを使用する必要があります。あなたが知っておくべき2つの主な事柄を以下に説明します。 application.propertiesファイルの内部に配置されている1キーは、プロファイル固有の設定によって無効にすることができ

ケース。

common.path.for.all.envs=/some/path 
default.path=/another/path 

application-dev.propertiesいくつかの値を無効にすることができます。 DEVプロファイルアプリケーションで実行時に

default.path=/dev/path 

は二つの鍵にアクセスする必要があります。 common.path.for.all.envsの値は、メインファイルでのみ宣言されているように/some/pathに設定され、default.path/dev/pathに設定されます。これは、プロファイル設定のプロパティを上書きするためです。

ケース2値はファイルは、プロファイルの設定に含まれる値のプレースホルダを使用することができますapplication.propertiesに定義されています。不足している変数を宣言application-dev.propertiesで、

abc=${profileLocation}/tempPath 

次:次にを実行している

profileLocation=xxx 

例えば、あなたのapplication.propertiesには、次の変数を定義しますdevプロファイルabcの値は​​に設定されます。ご覧のとおり、プロファイル設定で宣言された変数は、メインapplication.propertiesファイルでも使用できます。

+0

を含むように質問を更新しました。ありがとう@ダニエルOlszewski – explorer

関連する問題