spring boot @ConditionalOnxxx相關注解總結

Spring boot @ConditionalOnxxx相關注解總結

下面來介紹如何使用@Conditionhtml

 

[html] view plain copy
  1. public class TestCondition implements Condition    
  2. {    
  3.     /**   
  4.      * 只有返回true,纔會啓用配置   
  5.      */    
  6.     public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata)    
  7.     {    
  8.         return true;    
  9.     }    

@Conditional(TestCondition.class)
web

這句代碼能夠標註在類上面,表示該類下面的全部@Bean都會啓用配置,也能夠標註在方法上面,只是對該方法啓用配置。框架

 

Spring框架還提供了不少@Condition給咱們用,固然總結用語哪一種好理解,看給位讀者嘍spa

@ConditionalOnBean(僅僅在當前上下文中存在某個對象時,纔會實例化一個Bean)
@ConditionalOnClass(某個class位於類路徑上,纔會實例化一個Bean)
@ConditionalOnExpression(當表達式爲true的時候,纔會實例化一個Bean)
@ConditionalOnMissingBean(僅僅在當前上下文中不存在某個對象時,纔會實例化一個Bean)
@ConditionalOnMissingClass(某個class類路徑上不存在的時候,纔會實例化一個Bean)
@ConditionalOnNotWebApplication(不是web應用).net

後續會繼續補充xml

另外一種總結htm

@ConditionalOnClass:該註解的參數對應的類必須存在,不然不解析該註解修飾的配置類;
@ConditionalOnMissingBean:該註解表示,若是存在它修飾的類的bean,則不須要再建立這個bean;能夠給該註解傳入參數例如@ConditionOnMissingBean(name = "example"),這個表示若是name爲「example」的bean存在,這該註解修飾的代碼塊不執行。
對象

相關文章
相關標籤/搜索