Spring Condition注解的主要作用是根據條件給容器注入bean,簡稱條件注解。它是spring 4.0引入的新特性
@Component public class Cat { } @Component @Conditional(Match.class) public class Dog { } public class Match implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return false; } } public class Test { public static void main(String[] args) { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext("com.edu.condition"); String[] beanNames = annotationConfigApplicationContext.getBeanDefinitionNames(); for(String name:beanNames){ System.out.println(name); } } }
Match 實現了Condition,重寫 matches方法,當該方法返回true的時候,表示條件滿足。
從參數context里面可以獲取
1.context.getEnvironment() 環境信息 例如
String osName = context.getEnvironment().getProperty("os.name"); 獲取操作系統名稱
2.context.getRegistry() 注冊的bean
3.context.getResourceLoader() 加載的資源
4.context.getBeanFactory() beanFactory