@Conditional的擴展註解
1.class條件註解
@ConditionalOnClass:某個class位於類路徑上,纔會實例化一個Bean。
@ConditionalOnMissingClass:某個class類路徑上不存在的時候,纔會實例化一個Bean。
2.Bean條件註解
@ConditionalOnBean:當容器中有指定Bean的條件下進行實例化。
@ConditionalOnMissingBean:當容器裏沒有指定Bean的條件下進行實例化。
3.屬性條件註解
@ConditionalOnProperty:當指定的屬性有指定的值時進行實例化。
4.Resource條件註解
@ConditionalOnResource:當類路徑下有指定的資源時觸發實例化。
5.web條件註解
@ConditionalOnNotWebApplication:不是web應用,纔會實例化一個Bean。
@ConditionalOnWebApplication:當項目是一個Web項目時進行實例化。
6.表達式條件註解
@ConditionalOnExpression:基於SpEL表達式的條件判斷,當表達式爲true的時候,纔會實例化一個Bean。
@ConditionalOnJava:當JVM版本爲指定的版本範圍時觸發實例化。
@ConditionalOnJndi:在JNDI存在的條件下觸發實例化。
@ConditionalOnSingleCandidate:當指定的Bean在容器中只有一個,或者有多個但是指定了首選的Bean時觸發實例化。