网站建设及管理使用情况汇报去菲律宾做it网站开发
news/
2025/9/24 15:58:21/
文章来源:
网站建设及管理使用情况汇报,去菲律宾做it网站开发,校园网站制作方法,石家庄智能网站建设背景
如果想在运行过程中想基于nacos数据变更做一些业务#xff0c;比如想在运行过程中变更日志的级别#xff0c;那么我们可以扩展nacos的监听。
步骤
定义一个配置类#xff0c;用NacosConfigListener标记需要触发的方法#xff0c;并用dataId标记需要监听的文件。如下…背景
如果想在运行过程中想基于nacos数据变更做一些业务比如想在运行过程中变更日志的级别那么我们可以扩展nacos的监听。
步骤
定义一个配置类用NacosConfigListener标记需要触发的方法并用dataId标记需要监听的文件。如下
/*** 日志级别 nacos动态调整*/
Slf4j
Configuration
public class LoggingLevelConfig {/*** 动态刷新*/NacosConfigListener(dataId Constants.CONFIG_FILE_NAME)public void refresh(String msg) {}
}
需要注意的是这个方法必须要有一个String类型参数否则不会生效这个参数就是变更后的文件
解析变更内容 这里有两个思路 第一个是自己解析字符串第二个就是利用nacos自动刷新的机制定义一个配置属性类然后从这个类里面获取最新的属性值这里要注意的是被 NacosConfigListener标记的方法和nacos自动刷新的先后顺序是不能被保证的我的思路是开启一个新线程然后可以Sleep几秒后从配置类中读取最新的值。
所以最终的代码
Slf4j
Configuration
public class DemoLoggingLevelConfig {Resourceprivate SomePropertiesConfig propertiesConfig;/*** LoggingSystem*/Resourceprivate LoggingSystem loggingSystem;/*** 通用线程池*/Resource(name commonTaskExecutor)private ThreadPoolTaskExecutor commonTaskExecutor;/*** 动态刷新*/NacosConfigListener(dataId Constants.FILE_NAME)public void refresh(String msg) {// 线程池处理多线程taskExecutor.submit(() - {try {Thread.sleep(4000);log.info(获取到最新的值{}, propertiesConfig.getDynamicLogger());
// 通过loggingSystem} catch (Exception e) {log.error(异常{}, e.getLocalizedMessage(), e);}});}
}over~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915899.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!