@Conditional
註解是根據我們的條件來判斷是否需要注入某個bean
@ConditionalOnBean表示是否存在某個bean
@ConditionalOnMissingBean表示不存在bean
@ConditionalOnClass表示是否存在某個類
@ConditionalOnMissingClass表示不存在某個類
@ConditionalOnWebApplication表示是否處於web環境
@ConditionalOnProperty表示是否存在某個配置
@ConditionalOnNotWebApplication表示是不處於web環境
@ConditionalOnJava指定java的版本
下面我們將自定義個@Conditional註解
1. 自定義註解
我們自定義了一個@MyConditionAnnotation
註解,並且說明了當前註解的處理類爲MyCondition.class
編寫MyCondition類完成對@MyConditionAnnotation
註解的解析,裏面有一個match方法。返回true表示允許注入當前bean。我們下面的代碼就是通過讀取@MyConditionAnnotation
註解中的value,查找當前的value中的所有數據是否存在於環境的配置中
下面就是測試類
測試獲取A這個bean,如果沒有注入配置到application.properties中就會出現如下情況