spring boot 條件化決定是否裝配bean

2021-09-12 15:45:26 字數 775 閱讀 3984

1.根據 spring.profiles.active 屬性值決定

@configuration

@profile("dev")

public class testconfig

}

註解 @profile("*") 當spring.profiles.active 值為 * 時裝配

2. 根據condition裝配

@configuration

public class testconfig2

}class mycondition implements condition

}

當 matches 方法返回 true 時裝配。

通過conditioncontext,我們可以做到如下幾點: 借助getregistry()返回的beandefinitionregistry檢查bean定義; 借助getbeanfactory()返回的configurablelistablebeanfactory檢查bean是 否存在,甚至探查bean的屬性; 借助getenvironment()返回的environment檢查環境變數是否存在以及它的值是 什麼; 讀取並探查getresourceloader()返回的resourceloader所載入的資源; 借助getclassloader()返回的classloader載入並檢查類是否存在。

通過annotatedtypemetadata 可以獲取bean方法上的註解資訊

Spring Boot條件註解

一 為什麼springboot產生於spring4?spring4中增加了 condition annotation,使用該annotation之後,在做依賴注入的時候,會檢測是否滿足某個條件來決定是否注入某個類。conditional是springframework的功能,springboot在它...

SpringBoot 條件註解解析

當我們開發springboot專案時,有時候我們會根據不同的條件來建立相對應的bean物件,這個時候就用到了springboot自帶的條件註解,這裡我基於的springboot版本是 1.5.4.release 1 首先我們先定義乙個controller及其service介面 circulation...

按照條件決定報表顯示內容

某些報表可能需要根據使用者的選擇或者資料的狀態,決定某個元素是否顯示。比如乙個銷售統計報表,既有 也有柱形圖表,需要根據使用者的選擇,只顯示兩者之一,如下圖 wyn enterprise的報表設計器為每個元素都提供有乙個顯示選項 隱藏,如下圖 這是乙個布林型的選項值,是 表示隱藏,即不顯示 否 表示...