1. 程式人生 > >Spring Boot的條件註解總結

Spring Boot的條件註解總結

Spring Boot的條件註解位於org.springframework.boot.autoconfigure.condition包下,其對應的處理類在它上面的Conditional註解裡宣告。

Spring Boot的條件註解
註解 處理類 說明
ConditionalOnBean OnBeanCondition 指定的bean都在Spring容器中時才匹配。
ConditionalOnClass OnClassCondition 指定的類都在classpath上時才匹配。
ConditionalOnCloudPlatform OnCloudPlatformCondition 指定的雲平臺處於活動狀態時才匹配。
ConditionalOnExpression OnExpressionCondition 指定SpEL表示式成立時才匹配。
ConditionalOnJava OnJavaCondition 指定Java版本符合要求時才匹配。
ConditionalOnJndi OnJndiCondition JNDI可用和可以查詢指定位置時才匹配。
ConditionalOnMissingBean OnBeanCondition Spring容器中缺少對應的bean時才匹配。
ConditionalOnMissingClass OnClassCondition classpath中缺少指定的類時才匹配。
ConditionalOnNotWebApplication OnWebApplicationCondition 應用程式為非Web程式時才匹配。
ConditionalOnProperty OnPropertyCondition 應用環境中指定的屬性存在時才匹配。
ConditionalOnResource OnResourceCondition 指定的資原始檔存在時才匹配。
ConditionalOnSingleCandidate OnBeanCondition Spring容器中存在且只存在一個對應的例項時才匹配。
ConditionalOnWebApplication OnWebApplicationCondition 應用程式為Web程式時才匹配。

下面再補充一下幾個功能介面

Spring的功能介面
介面名稱 主要方法及功能
ApplicationContextAware void setApplicationContext(ApplicationContext applicationContext) throws BeansException:實現了該介面的bean,可以從此方法獲取它所在的容器上下文環境。
InitializingBean void afterPropertiesSet() throws Exception:實現了該介面的bean,在初始化的時候會執行此方法。
BeanPostProcessor

default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException:執行例項化之前的一些邏輯。

default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException:實執行例項化之後的一些邏輯。