Spring Boot的條件註解總結
阿新 • • 發佈:2019-01-14
Spring Boot的條件註解位於org.springframework.boot.autoconfigure.condition包下,其對應的處理類在它上面的Conditional註解裡宣告。
註解 | 處理類 | 說明 |
---|---|---|
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程式時才匹配。 |
下面再補充一下幾個功能介面
介面名稱 | 主要方法及功能 | |
---|---|---|
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:實執行例項化之後的一些邏輯。 |