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