springboot集成nacos配置中心不自动刷新问题
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
详情
官网推荐@value 配合@RefreshScope 来实现 配置自动刷新。刚好在一份需求中遇到需要自动刷新的要求。
因为公司中 springboot版本和cloud版本 以及nacos版本 的选择上,没有考虑到一致性。导致 @value 配合@RefreshScope 并不能刷新
最终多方考虑 采取自定义事件解决
@Configuration
public class NacosRefreshEvent {
@Bean
public NacosRefreshEventHandler nacosRefreshListener(ContextRefresher refresh) {
return new NacosRefreshEventHandler(refresh);
}
public static class NacosRefreshEventHandler {
private ContextRefresher refresh;
public NacosRefreshEventHandler(ContextRefresher refresh) {
this.refresh = refresh;
}
@EventListener
public void handle(RefreshEvent event) {
this.refresh.refresh();
}
}
}