学习中遇到了@ConditionalOnRefreshScope注解,查了些资料了解记录一下。
条件注解,是 Spring Boot 中出现的内容,一般应用于配置类中。 表示只有当该条件满足时才会创建该实例。
@ConditionalOnRefreshScope
注解, 是 Eureka Client
的自动配置类中的一个内部注解。
该注解不同于 Spring Boot
中的一般性注解的是,它是一个复合条件注解
复合的条件有三个:
- 在当前类路径下具有
RefreshScope
类 - 在容器中要具有
RefreshAutoConfiguration
类的实例 - 指定的
eureka.client.refresh.enable
属性值为true
。不过,其缺省值就是true
。这也就是 为什么我们的配置文件默认支持自动更新的原因。
注意
只有当这个复合注解中的三个条件均成立时,@ConditionalOnRefreshScope
注解才满足 条件。此时才有可能会调用创建 Eureka Client 的@Bean 方法
。所以,该注解对于 Eureka Client 的创建非常重要。