Spring Boot2.0版本源碼(十):Spring Boot的Start的解析之@Conditional註解

@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中就會出現如下情況
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章