SpringBoot【条件注解@Conditional】
1、Condition
是在spring4.0 增加的条件注解,通过这个可以功能可以实现选择性的注入Bean操作。
注意:以下三个代码块分属不同的文件,便于说明具体问题
@Bean("contectService")
@Conditional(LoadConditional.class)
// 条件控制,如果对应的match操作返回true,则会注入该bean
// 否则会跳过处理该bean
public ContextService contextService() {
return new ContextService();
}
public class LoadConditional implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
// 查看在Bootstrap的ENV的值是否等于test
// 后面会介绍这个context上下文,其中包含了整个的bean工厂内容
return Bootstrap.ENV.equals("test");
}
}
@SpringBootApplication
@ComponentScan("com.demo.boot")
@EnableSwagger2
public class Bootstrap {
public static String ENV = "test";
public static void main(String[] args) {
SpringApplication.run(Bootstrap.class);
}
}
2、条件注解小结
这些注解都组合了@Conditional元注解,只是使用不同的条件。


浙公网安备 33010602011771号