Spring 中条件注解的作用

885 total views, 3 views today

@Conditional 是 Spring 4.0 提供的新注解。条件注解,顾名思义就是根据不同的条件加载不同的 Bean 到容器中。条件是写在一个接口实现类中,该条件所在的方法会返回布尔类型值,true 的时候表示满足该条件。

Conditional 的定义如下:

可以看到,这个注解用于方法或者类。并且其中的 value 就是一个 condition 接口类型。condition 接口的定义如下:

当 condition 接口的 matches 方法满足的情况下,标注的 Bean 就可以加载。
下面演示一下用法,当环境是 dev 的时候,返回 dev 的 DataSource,环境是 prd 的时候,返回 prd 的 DataSource。
演示
新建如下几个文件
  1. DataSource 类。
  2. Config 类,用于配置 Bean。
  3. DevDataSourceCondition 类和 ProdDataSourceCondition 类,都是实现 Condition 接口的类,用于 Conditional 标注中的参数。
  4. Main 类,程序入口,Main 方法,观察不同的参数实现不同的实例。

配置类

条件接口的实现类。


入口类,Main 方法

运行的时候,需要配置虚拟机参数,便于测试:

可以运行结果如下:

实例个数:10
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.event.internalEventListenerProcessor
org.springframework.context.event.internalEventListenerFactory
config
org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor
DataSource
实例名字:prd

原创文章,转载请注明出处!http://www.javathings.top/spring中条件注解的作用/

About: wusq


发表评论

邮箱地址不会被公开。 必填项已用*标注