常用的選擇器如下:
- @Conditional,當(dāng)指定的條件都滿足時(shí),組件才被注冊(cè);
- @ConditionalOnBean,指定bean在上下文中時(shí),才注冊(cè)當(dāng)前bean。用在方法上,則默認(rèn)依賴(lài)類(lèi)為方法的返回類(lèi)型;
- @ConditionalOnClass,指定類(lèi)在classpath上時(shí),才初始化當(dāng)前bean。用在方法上,則默認(rèn)依賴(lài)類(lèi)為方法的返回類(lèi)型;
- @ConditionalOnCloudPlatform,在指定云平臺(tái)才注冊(cè)配置;
- @ConditionalOnExpression,指定spel為true時(shí)注冊(cè)配置;
- @ConditionalOnJava,在指定java版本時(shí)注冊(cè)配置;
- @ConditionalOnJndi - @ConditionalOnMissingBean,指定bean不在上下文中時(shí),才初始化當(dāng)前bean。用在方法上,則默認(rèn)依賴(lài)類(lèi)為方法的返回類(lèi)型;
- @ConditionalOnMissingClass,指定類(lèi)不在classpath上時(shí),才初始化當(dāng)前bean。用在方法上,則默認(rèn)依賴(lài)類(lèi)為方法的返回類(lèi)型;
- @ConditionalOnNotWebApplication,不是在web環(huán)境才注冊(cè)配置;
- @ConditionalOnProperty,配置文件中的值與指定值是否相等,相等才注冊(cè)配置;
- @ConditionalOnResource,指定resources都在classpath上才注冊(cè)配置;
- @ConditionalOnSingleCandidate,上下文中只有一個(gè)候選者bean時(shí)才注冊(cè)配置;
- @ConditionalOnWebApplication,是在web環(huán)境才注冊(cè)配置。