/apollo-auto-refresh

Apollo属性动态刷新支持

Primary LanguageJava

1. Apollo对于属性动态刷新的支持:

方式 支持
@Value("${xxx}") 支持
@ConfigurationProperties(prefix = "xxx") 不支持

2. 解决@ConfigurationProperties(prefix = "xxx")的动态刷新

3. Apollo官方给出的解决方案:

  1. 基于@RefreshScope
  2. 基于EnvironmentChangeEvent

4. Apollo官方的解决方案不足之处:

  1. 需要编写一定的代码
  2. 需要额外的指出namespaces

5. 终极解决之道

  1. 引入依赖:
<parent>
    <groupId>cn.yzw</groupId>
    <artifactId>apollo-auto-refresh-spring-boot-starter</artifactId>
    <version>最新版本</version>
</parent>
  1. main方法所在的类头顶上加上@EnableApolloAutoRefresh注解即可
  2. 关于namespaces的配置:
    1. @EnableApolloConfigvalue属性可以配置
    2. @EnableApolloAutoRefreshvalue属性也可以配置
    3. 监控的namespace取第一第二点的value的并集