@ConditionalOnProperty這個(gè)注解是一個(gè)條件注解一般常見(jiàn)配合@Configuration使用
意思是配置類(lèi)是否生效
配置類(lèi)是否生效主要就看@ConditionalOnProperty中的參數(shù)了
name代表是 spring yaml配置文件中的key的名字
havingValue 代表是 spring yaml配置文件中的key的value值
如果 @ConditionalOnProperty(name="abc",havingValue="12345")
剛好yaml配置文件中有
abc: 12345
那么條件成立@Configuration 標(biāo)注的類(lèi)會(huì)被加載否則就不會(huì)加載 一般SpringBoot自動(dòng) 裝配經(jīng)常用到 比如 數(shù)據(jù)庫(kù)連接需要配置哪個(gè)類(lèi)的類(lèi)型
相反如果配置文件是
abc:123 發(fā)現(xiàn)匹配不上havingValue的值那么就不會(huì)加載這個(gè)配置類(lèi)穷劈。
matchIfMissing 這個(gè)含義就是 針對(duì)name的笼恰。 如果配了havingValue 這個(gè)參數(shù)matchIfMissing就沒(méi)有用了 怎么寫(xiě)都不生效
如果 不配置havingValue。只配置name 那么matchIfMissing =true 意思就是歇终。name寫(xiě)的key名字在配置文件中是否有 都會(huì)生效
如果配置false那么就是 name中定義的key名字在配置文件找不到社证。就條件不成立