欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

spring cloud @RefreshScope刷新问题

发布时间:2025/7/14 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 spring cloud @RefreshScope刷新问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题

使用@RefreshScope会刷新在sprign ioc中所有bean中使用@Value的值,但是在配置类中使用方法去配置的其他类参数并不会改变例如

解决方案

//使用此方法监听事件 @EventListenerpublic void envListener(EnvironmentChangeEvent event) {}

原因

在调用刷新方法是会产生一个EnvironmentChangeEvent事件。
其实进入 ContextRefresher 的源码,看下refresh接口,就很明确了

public synchronized Set<String> refresh() {Map<String, Object> before = extract(this.context.getEnvironment().getPropertySources());addConfigFilesToEnvironment();Set<String> keys = changes(before,extract(this.context.getEnvironment().getPropertySources())).keySet();// 注意这一行,抛出了一个变更事件this.context.publishEvent(new EnvironmentChangeEvent(context, keys));this.scope.refreshAll();return keys; }

具体原因请参考
详情

转载于:https://www.cnblogs.com/ingxx/p/11274818.html

总结

以上是生活随笔为你收集整理的spring cloud @RefreshScope刷新问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。