Closed mstao closed 5 years ago
我在Java客户端使用指南#三客户端用法 发现
@ApolloConfig
private Config config; //inject config for namespace application
这个是注入namespace application的,如果非application,
可以这样吧:
@ApolloConfig(value = "logger")
private Config config;
我测试了一下,这样写,更改配置后,也不会刷新
看了文档,@ApolloConfig 和 @ApolloConfigChangeListener 都需要指定namespace,所以这样写:
@ApolloConfig("logger")
private Config config;
@PostConstruct
private void initialize() {
refreshLoggingLevels(config.getPropertyNames());
}
@ApolloConfigChangeListener("logger")
private void onChange(ConfigChangeEvent changeEvent) {
refreshLoggingLevels(changeEvent.changedKeys());
}
现在有一个配置项
logging.level.root
,代表日志级别,如果该项配置在application 的namespace下,实时刷新日志即可有效,但将该配置项移到新建的logger的namespace中,更改该项配置,项目不会刷新该配置. 示例代码:地址,日志级别刷新代码:链接我在项目的application.yml添加如下配置:
同时在apollo配置页面上配置如下:
是我用的哪个地方不对吗?