1、@Conditional
条件注解;满足当前条件,这个类中配置的所有bean注册才能生效;
使用如下:
@Conditional({MyCondition.class})
public class TestCondition {
}
//只有dev环境时 才会加载
public class MyCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
Environment environment = context.getEnvironment();
String property = environment.getProperty("profile");
if(property.equals("dev")){
return true;
}
return false;
}
}
2、其他@Conditional扩展注解
- @ConditionalOnBean:容器中存在指定的bean
- @ConditionalOnMissingBena:容器中不存在指定的bean
- @ConditionalOnExpression:满足ELPS表达式指定
- @ConditionalOnClass:系统中有存在的类
- @ConditionalOnMissingClass:系统中不存在的类
- @ConditionalOnProperty:系统中指定的属性是否有指定的值
- @ConditionalOnResource:类路径下是否存在指定的资源文件
- @ConditionalOnWebApplication:当前是web环境