@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE={TYPESE,METHODSE}) @DocumentedSE @Conditional(value=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 { }このような場合は、カスタム条件を使用することをお勧めします。
修飾子と型 | オプションの要素と説明 |
---|---|
StringSE | havingValue プロパティの期待値の文字列表現。 |
boolean | matchIfMissing プロパティが設定されていない場合に条件を一致させるかどうかを指定します。 |
StringSE[] | name テストするプロパティの名前。 |
StringSE | prefix 各プロパティに適用する必要がある接頭辞。 |
StringSE[] | value name() のエイリアス。 |
public abstract StringSE prefix
"acme.system.feature"
)。public abstract StringSE[] name
app.config
で、1 つの値が my-value
の場合、完全なキーは app.config.my-value
になります。 破線の表記を使用して各プロパティを指定します。つまり、すべて小文字で "-" を付けて単語を区切ります(例: my-long-property
)。
public abstract StringSE havingValue
false
と等しくない必要があります。