2016-08-18 21 views
-1

は、私が最初にdefaultPropertyに、他のフォールバックを、それをoverridePropertyが利用可能であるかどうかを確認して使用する必要があるクラスを持っているfile春値注釈デフォルト?

defaultProperty="default" 
overrideProperty="override" 

で次のプロパティを考えてみましょう。

私は私が式を置くことができますどのように

(値である)defaultdefaultProperty私が戻って何を得るためで、これは動作しません

MyClass { 

@Value("${overrideProperty: defaultProperty}") 
String tokenizationAlgorithm; 
} 

としてこれをやっていない試してみました@Value注釈のデフォルト値の一部? ${overrideProperty:${defaultProperty}}がそれに対応する値でフォーマット${name}のすべてのプレースホルダを置き換えますPropertyPlaceholderHelperreplacePlaceholdersメソッドに渡されます

@Value("${overrideProperty:${defaultProperty}}") 

+1

あなたは '@valueてみました( "$ {overridePropertyを:$ {defaultProperty}}")'? –

答えて

1

は、次の構文を使用します。

parseStringValueメソッドの再帰的性質のため、${defaultProperty}の値は${overrideProperty}より前に解決されることに注意してください。したがって、${overrideProperty}が提供されている場合でも、常にデフォルト値を使用する必要があります。また、デフォルト値のデフォルト値を指定することもできます。また

@Value("${overrideProperty:${defaultProperty:literallyDefault}}") 

マインドギャップ

@Value("${overrideProperty: defaultProperty}") 
         ^This space will be placed before your default value 
+0

デフォルト値の前のスペースは必須ではありません。スペースもあまりないです。 – sanjeevjha

+0

@sanjeevjha必須ではありませんが、実際の値の前に不要なスペースが挿入されます。 「何か」は「何か」に変わります。 –

関連する問題