アノテーションインターフェース 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
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    プロパティの期待値の文字列表現。
    boolean
    プロパティが設定されていない場合に条件を一致させるかどうかを指定します。
    テストするプロパティの名前。
    各プロパティに適用する必要がある接頭辞。
    name() のエイリアス。
  • 要素の詳細

    • value

      StringSE[] value
      name() のエイリアス。
      戻り値:
      デフォルト:
      {}
    • 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