常用的选择器如下:
- @Conditional,当指定的条件都满足时,组件才被注册;
- @ConditionalOnBean,指定bean在上下文中时,才注册当前bean。用在方法上,则默认依赖类为方法的返回类型;
- @ConditionalOnClass,指定类在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型;
- @ConditionalOnCloudPlatform,在指定云平台才注册配置;
- @ConditionalOnExpression,指定spel为true时注册配置;
- @ConditionalOnJava,在指定java版本时注册配置;
- @ConditionalOnJndi - @ConditionalOnMissingBean,指定bean不在上下文中时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型;
- @ConditionalOnMissingClass,指定类不在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型;
- @ConditionalOnNotWebApplication,不是在web环境才注册配置;
- @ConditionalOnProperty,配置文件中的值与指定值是否相等,相等才注册配置;
- @ConditionalOnResource,指定resources都在classpath上才注册配置;
- @ConditionalOnSingleCandidate,上下文中只有一个候选者bean时才注册配置;
- @ConditionalOnWebApplication,是在web环境才注册配置。