当你在nacos变更配置的时候,如果在客户端收到几条日志:
Ignore the empty nacos configuration and get it based on dataId[null] & group[DEFAULT_GROUP]
说明你的bootstrap.properties (or bootstrap.yml) 配置少了 spring.application.name 或者 spring.cloud.nacos.config.name 中的一项,大部分的时候我们只会在 application.yml 中配置 spring.application.name, 进而忽略默认dataId(spring.cloud.nacos.config.name) 的配置,猜测在 spring-cloud-alibaba:2021.0.4.0 中,com.alibaba.nacos.common.remote.client 在接收到服务端的push request后,调用PropertySourceBootstrapConfiguration.initialize 时只处理了bootstrapProperties ,具体可以看源码
另外,nacos 配置的变更,最终也只是更新到 applicationContext.enviroment 属性里,并不会更新到已实例化的bean的属性上,可以在bean的类上加上 @RefreshScop 来接解决 bean 属性值的更新