spring @Conditional 条件装配

  • Post author:
  • Post category:其他


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

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

@Conditional注解的使用:

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

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

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

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

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

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

测试上述代码:



版权声明:本文为qq_24985171原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。