使用@ConditionalOnPropertyコメント

構成ファイル内のプロパティ値によって@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構成は次のとおり    
ではない関連する構成//パラメータの失敗   

おすすめ

転載: www.cnblogs.com/yaphetsfang/p/11817999.html