構成ファイル内のプロパティ値によって@ConditionalOnPropertyのばねブート注釈は、構成が注入されているかどうかを決定します
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE、ElementType.METHOD}) @Documented @Conditional(OnPropertyCondition。クラス) パブリック@interfaceのConditionalOnProperty { / * * *以下のname属性を持つStringこの属性配列は、同時に使用することはありません *偽の値に設定ファイル対応の値は、注射が有効になりません、効果fasleに注入されていない場合 値*値を複数限り、falseに対応する値があるとして、注入が失敗した場合には * / 文字列[]の値()デフォルト{}。 / * * *設定ファイルのキー・プレフィックスの名前や値と組み合わせて使用することができます * / 文字列のプレフィックス()デフォルト "" ; / * * *値の効果と一致 * / 文字列[]名()デフォルト{}。 / * * *値またはと組み合わせて使用される名称、havingValue又は同一の、注入開始に対応する名前を持つ値だけ値* /ストリングhavingValue()デフォルト 「」 ; / * * *対応するプロパティ設定が欠落している、とすることができます注射;対応の本当の不足が設定移植される* /ブールmatchIfMissing()デフォルト はfalse ;} * / 文字列havingValue()デフォルト "" ; / * * *このプロパティがtrueの場合、設定ファイルが見つからないか、対応するプロパティ値の名前の対応する値、また、成功した注射 * / ブールmatchIfMissing()デフォルト はfalse ;
//注入対応するテストケース
@Configuration
@ConditionalOnProperty(値= "parentName.sonName")
パブリッククラスparentNameConfigは{
}
:次のように構成.yml
parentNameを:
sonNameは:真//正常に
:parentName
sonName://通常、空の文字
parentName :
sonName:偽//に失敗
parentName:
sonName://ヌル通常
parentName:
sonName:正常// 123
第二列のに:
@ConditionalOnProperty(値= "parentName.sonName"、havingValue = "123")
.yml構成次のように:
parentNameを:
sonName:123 //通常
parentName:
sonName:1234 //に失敗しました
parentNameを:
sonName:偽//に失敗しました。
第二行置換:
( "falseに"値= "parentName.sonName"、havingValue =)@ConditionalOnPropertyを
以下のように構成.yml:
parentName:
sonName:正常偽//の
第二列に入れ:
@ConditionalOnProperty(接頭辞= " parentName "名前=" sonName "havingValue =" 123「)は
以下のように構成.yml:
parentName:
sonName:123 //正常
parentName:
sonName:1234 //が失敗し、与えられた値は矛盾havingValueある
に第二列:
@ConditionalOnProperty(接頭辞= "parentName"、名前= "sonName"、havingValue = "123"、matchIfMissing =真)
.yml構成は、次のされています。
設定しないパラメータ//通常、真matchIfMissing =、たとえないparentNameを。 sonNameプロパティが正常にロードされます
二行目に入れます:
@ConditionalOnProperty(接頭辞= "parentName"、名前= "sonName"、havingValue = "123"、matchIfMissing =偽)// matchIfMissingのここでのデフォルトはfalseで、書き込みはすべての権利書かない
.yml構成は下記の通りである:
構成パラメータは失敗しません// matchIfMissingは=偽、それは対応するプロパティ有していなければならない場合
parentNameを:
sonName:正常// 123
:への第二列に
//接頭辞@ConditionalOnProperty(=接頭辞"parentName"、名前= "sonName"。)。 (ドット)
以下のように.yml構成がある:
parentName:
sonName:trueに//正常
parentName:
sonName:正常// 123
に第二列に:
@ConditionalOnProperty(接頭辞= "parentName"、値= { "sonName2"}、名前= { "sonName"})
.yml構成は以下の通りである:
parentName:
sonName:真//デバッグプロジェクトは名前と値で、起動に失敗した@ConditionalOnPropertyの排他の属性である
ConditionalOnProperty @ //名前と値の属性が相互に排他的で、同時に表示することはできません
。二行目置き換えること
@ConditionalOnProperty(接頭辞=を" parentName "{名前=" sonName "})
次のように.yml構成は:
parentName:
sonName://真の法線
:第二列に入れ
@ConditionalOnProperty(接頭辞=" parentName "{名前=" sonName ""のフラグ" })// name属性をし、通常の方法でロードされただろう両方の偽の存在を必要としない
、次のように.ymlに構成:
parentName:
sonName:trueに
旗で:// trueにノーマル
:parentName
sonName:trueに
旗で:123 //通常
parentName :
sonName:trueに
フラグ: 失敗//偽
parentName:
sonName:falseに
、フラグ:偽//に失敗した
第二列に入れ:
@ConditionalOnProperty( "偽の"接頭辞= "parentName"、{名前= "sonName"、 "のフラグ"}、havingValue =)
parentName:
sonName:falseに
フラグ:正常//偽
二行目置き換える:
@ConditionalOnProperty({ "フラグに" NAME = "sonName"}接頭辞= "parentName"、havingValue = "123")// parentName.sonNameとparentName.flag値のジョブhavingValueと一致しなければならない
parentName:
sonName:123
フラグ:1234 //失敗
parentName:
sonName:123
フラグ:123 //正常
parentName:
sonName:123 //障害、parentName.flagを欠く
第二列に:
@ConditionalOnProperty(接頭辞= "parentName"、名前= { "sonName"、 "フラグ"}、havingValue = "123"、matchIfMissing = TRUE)// matchIfMissing = trueが欠落している可能
:parentName
sonName:123 //通常は
次のように構成さ.yml :
設定パラメータが//正常でない
第二列に入れ:
@ConditionalOnPropertyは(接頭辞=「parentName」、{名前=「sonName」、「のフラグ」}、havingValue =「123」)
次のように.yml構成は次のとおり
ではない関連する構成//パラメータの失敗