デフォルトでSpring @Valueを使う

1概要

Springの @ Value アノテーションは、プロパティ値をコンポーネントに注入するための便利な方法を提供します。プロパティが存在しない可能性がある場合に** 実用的なデフォルトを提供することも非常に便利です。

それがこの記事で焦点を当てることになるでしょう - @ Value Springアノテーションのデフォルト値を指定する方法。 @ Value に関するより詳しいクイックガイドは、記事リンク:/spring-value-annotation[ここ]を参照してください。

2文字列デフォルト

String プロパティにデフォルト値を設定するための基本的な構文を見てみましょう。

@Value("${some.key:my default value}")
private String stringWithDefaultValue;

some.key を解決できない場合、 stringWithDefaultValue はデフォルト値の「 my default value」 に設定されます。

同様に、長さゼロの String をデフォルト値として設定できます。

@Value("${some.key:})"
private String stringWithBlankDefaultValue;

3プリミティブ

boolean int などのプリミティブ型にデフォルト値を設定するには、リテラル値を使用します。

@Value("${some.key:true}")
private boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private int intWithDefaultValue;

必要に応じて、型を Boolean および Integer に変更することで、代わりにプリミティブラッパーを使用できます。

4配列

カンマ区切りの値のリストを配列に挿入することもできます。

@Value("${some.key:one,two,three}")
private String[]stringArrayWithDefaults;

@Value("${some.key:1,2,3}")
private int[]intArrayWithDefaults;

上記の最初の例では、値 " one" 、 " 2"、および " three"がデフォルトとして stringArrayWithDefaults に挿入されています。

2番目の例では、 1、2、および3 の値がデフォルトとして intArrayWithDefaults に挿入されています。

5 SpELを使用する

Spring Expression Language(SpEL)を使って式とデフォルトを指定することもできます。

次の例では、 some.system.key がシステムプロパティとして設定されていることを想定しています。設定されていない場合は、デフォルトとして " my default system property value" を使用します。

@Value("#{systemProperties['some.key']?: 'my default system property value'}")
private String spelWithDefaultValue;

6. 結論

この簡単な記事では、Springの @ Value アノテーションを使用して値を注入したいプロパティにデフォルト値を設定する方法を調べました。

いつものように、この記事で使われているコードサンプルはすべてhttps://github.com/eugenp/tutorials/tree/master/spring-core[the GitHub project]にあります。

前の投稿:SpringによるRESTのエラー処理
次の投稿:Javaのラッパークラス