spring @Conditional 条件装配

 @Conditional注解是spring Framework提供的一个核心注解,这个注解的作用是提供条件装配的约束,一般与@Configuration 和@Bean配合使用。

简单来说,就是spring在解析@Configuration标注的配置类时,如果该配置类增加了@Conditional注解,那么spring会根据@Conditional注解中的条件判断是否要装配该配置类。

@Conditional注解的使用:

@Conditional注解的源码如下,该注解可以接收的value值是Condition类型数组

 spring @Conditional 条件装配_第1张图片

Condition是一个函数式接口,提供matches方法,它主要提供一个条件匹配的规则,返回true,则表示可以注入Bean,反之则不注入。 

spring @Conditional 条件装配_第2张图片

我们下面来实现一个基于@Conditional注解的条件装配案例:

1、自定义一个Condition,实现Conditon接口,重写matches方法,如果当前的系统是Windows,返回true,否则返回false 

 spring @Conditional 条件装配_第3张图片

2、创建一个配置类,用来装载一个Bean,在CustomBean的声明方法上增加@Conditional(value = {Customcondition.class})注解,条件就是Customcondition类

spring @Conditional 条件装配_第4张图片 

以上代码表示,如果Customcondition类中的matches方法返回true,则将CustomBean注入到spring容器中

测试上述代码:

spring @Conditional 条件装配_第5张图片 

 

你可能感兴趣的:(spring,boot,spring,java)