spring cloud通过refreshEvent实现配置动态刷新
1 Environment的PropertySource更新
2 ConfigurationProperties重新绑定
3 RefreshScope内bean摧毁,摧毁后下次代理上方法调用会重新生成,@Value重新注入
@RefreshScope:定义scope为refresh的bean,定义cglib代理bean,代理bean的每次方法调用-beanFactory-scope-找到被代理bean并调用其方法
应用:
nacos:长轮询发现某dataId+group配置变更,listener发布refreshEvent
配置文件变更+手动调用/actuator/refresh发布refreshEvent