一个基于 SpringBoot 的 Apollo Config Starter
用于解决 Apollo 配置中心使用 @ConfigurationProperties 时无法实时更新配置。
- 引入依赖
<dependency>
<groupId>io.github.izachwei</groupId>
<artifactId>apollo-config-spring-boot-starter</artifactId>
<version>1.0.4-RELEASE</version>
</dependency>
- 在 @ConfigurationProperties bean 上添加注解
@ApolloRefreshScope
,开启配置热更新。
- 参考核心类:ApolloConfigRefresh.java
- 利用
BeanPostProcessor
后置处理器收集打上@ApolloConfigRefresh
的配置类,缓存在apolloConfigCache
(key:prefix,value: beanName) @ApolloConfigChangeListener
监听 Apollo 配置的变更,通过apolloConfigCache
获取对应的bean,最后使用refreshScope.refresh()
刷新配置bean。
apollo update key -> ApolloConfigChangeListener -> apolloConfigCache.get(configKey) -> refreshScope.refresh()