1. 环境:JDK8 SpringCloud 2.2.0 RELEASE Nacos1.1.4
2. 问题:nacos上的配置文件可以读取到,但是发现不能热更新
3. 尝试办法1 :在用到配置项的类上都加上注解@RefreshScope
结果 :没有成功
尝试办法2 :将@value 注解替换成@NacosValue
结果 :没有成功
尝试办法3 :将@value 注解替换成@NacosValue
结果 :没有成功
4.最终解决:发现自己配置的nacos访问配置文件是写在shared-configs 上,这个配置项的意思是公共配置,放在这个配置项里的配置文件都不会热更新,所以需要热更新的配置文件都应该放在extension-configs 这个配置项上,然后 在用到配置文件中的配置项的类上都加上注解@RefreshScope 就好了
配置如下:
spring: application: name: hbb # ==================================================================== # nacos相关配置(注意不要修改) # nacos.discovery.server-addr:服务发现地址 # nacos.discovery.ip:注册到注册中心的服务实例地址,程序启动时会自动选择本地ip,如果服务器是多 # 网卡,可能会出现配置错误,此时需要指定参数"REGISTER_IP"的值 # # nacos.config.server-addr:配置中心服务地址 # nacos.config.file-extension:配置文件后缀 # nacos.config.shared-configs:共享配置文件名 # ==================================================================== cloud: nacos: discovery: server-addr: ${NACOS_HOST:paas-register}:${NACOS_PORT:8848} ip: ${REGISTER_IP:} config: server-addr: ${spring.cloud.nacos.discovery.server-addr} file-extension: yml shared-configs: - AAA.${spring.cloud.nacos.config.file-extension} # 微服务体系相关公共配置 - BBB.${spring.cloud.nacos.config.file-extension} # 数据源配置 extension-configs: - data-id: CCC.yml # icube业务配置 refresh: true
|