2010-11-26 13 views
2

私は次の問題があります。春を使用して春の式の評価(注釈)

を、私はクラス変数にプロパティ「パスワード」によって参照された値を伝播したいと思います:

@Value("${password}") 
private String password; 

作品限り、春が 'パスワード'と呼ばれるプロパティを見つけることができます。すべての異なる実行に対して定義されるわけではないので、私はpasswortプロパティが利用できないときにデフォルト値を割り当てられるようにしたいと思います。この作品

@Value("${size_count?:5}") 
private int count; 

は、私は、次の例を見つけました。しかし、私はパスワード(型文字列)のために同じをしようとすると、それは常にfalseに評価され、パスワードプロパティが定義されているが、文字列 'x'を返します。

@Value("${password?:x}") 
private String password; 

乾杯 クリス

答えて

1

てみてください(私は推測している、それは意味が行うかどうかわからない)

@Value("${password}?:'x'") 
+0

:あなたは:を使用する必要があるプロパティのプレースホルダで

${...})。それが正しいかどうかにかかわらず、+1: –

+0

ありがとう。私はその考えを思い付いた。パスワードが 'bla'の場合、式の結果は次のようになります。 bla?: 'x' したがって、式は{}内になければなりません。 – chr1s

+0

実際に試しましたか? – Bozho

1

?:はすなわち#{...}、春の表現言語で使用されています。私が提案しただろう正確なことだ

@Value("${password:x}") 
private String password; 
+0

+1これはプロパティのプレースホルダ設定者の正しいsynaxなので – Ralph