アノテーションインターフェース ConditionalOnProperty
@RetentionSE(RUNTIMESE)
@TargetSE({TYPESE,METHODSE})
@DocumentedSE
@Conditional(org.springframework.boot.autoconfigure.condition.OnPropertyCondition.class)
public @interface ConditionalOnProperty
指定されたプロパティに特定の値があるかどうかをチェックする
@Conditional。デフォルトでは、プロパティは Environment に存在し、false と等しくない必要があります。havingValue() および matchIfMissing() 属性を使用すると、さらにカスタマイズできます。havingValue() 属性を使用して、プロパティに必要な値を指定できます。以下の表は、プロパティ値と havingValue() 属性に従って条件が一致する場合を示しています。
| プロパティ値 | havingValue="" | havingValue="true" | havingValue="false" | havingValue="foo" |
|---|---|---|---|---|
"true" | はい | はい | いいえ | いいえ |
"false" | いいえ | いいえ | はい | いいえ |
"foo" | はい | いいえ | いいえ | はい |
プロパティが Environment にまったく含まれていない場合は、matchIfMissing() 属性が参照されます。デフォルトでは、欠落している属性は一致しません。
この条件は、一致するコレクションプロパティに確実に使用することはできません。例: 次の構成では、spring.example.values が Environment に存在する場合、条件は一致しますが、spring.example.values[0] が存在する場合、条件は一致しません。
@ConditionalOnProperty(prefix = "spring", name = "example.values")
class ExampleAutoConfiguration {
}
このような場合は、カスタム条件を使用することをお勧めします。- 導入:
- 1.1.0
- 作成者:
- Maciej Walkowiak, Stephane Nicoll, Phillip Webb
要素の詳細
value
StringSE[] valuename()のエイリアス。- 戻り値:
- 名
- デフォルト:
- {}
prefix
StringSE prefix各プロパティに適用する必要がある接頭辞。指定しない場合、プレフィックスは自動的にドットで終了します。有効なプレフィックスは、ドットで区切られた 1 つ以上の単語で定義されます(例:"acme.system.feature")。- 戻り値:
- プレフィックス
- デフォルト:
- ""
name
StringSE[] nameテストするプロパティの名前。プレフィックスが定義されている場合は、各プロパティの完全なキーを計算するために適用されます。たとえば、プレフィックスがapp.configで、1 つの値がmy-valueの場合、完全なキーはapp.config.my-valueになります。破線の表記を使用して各プロパティを指定します。つまり、すべて小文字で "-" を付けて単語を区切ります(例:
my-long-property)。複数の名前が指定されている場合、条件が一致するにはすべてのプロパティがテストに合格する必要があります。
- 戻り値:
- 名
- デフォルト:
- {}
havingValue
StringSE havingValueプロパティの期待値の文字列表現。指定しない場合、プロパティはfalseと等しくない必要があります。- 戻り値:
- 期待値
- デフォルト:
- ""
matchIfMissing
boolean matchIfMissingプロパティが設定されていない場合に条件を一致させるかどうかを指定します。デフォルトはfalseです。- 戻り値:
- プロパティが欠落している場合に条件が一致する必要がある場合
- デフォルト:
- false