前言
nacos配置中心的配置更新了,程序里却没有获取到最新的配置。程序不用重启就自动刷新的方法
前置条件
# 开启监听和自动刷新,动态感知配置变化,默认值:true
spring.cloud.nacos.config.refresh-enabled=true
- bean上有注解@NacosRefresh,则会自动刷新
- 使用了@Component注解,则会自动刷新
- 如果都没有效果,bean上加 @RefreshScope注解,配置文件中配置refresh: true,一定会生效
扩展配置文件
下面这种扩展配置文件修改后代码里肯定不生效
spring:
cloud:
nacos:
config:
file-extension: yml
server-addr:
namespace:
group: DEFAULT_GROUP
# 注意下面这行配置
extension-configs: base.yml,mysqlMaster.yaml
refresh-enabled: true
配置成这种就生效了
spring:
cloud:
nacos:
config:
file-extension: yml
server-addr:
namespace:
group: DEFAULT_GROUP
# 注意下面这行配置
extension-configs:
- data-id: base.yml
refresh: true
- data-id: mysqlMaster.yaml
refresh: true
refresh-enabled: true
以微服务命名的配置文件如商品微服务product-dev.yml
这种自行百度,大把解决方案。