1.首先修改pom.xml文件,引入spring-cloud-starter-alibaba-nacos-config依赖
-
- <dependency>
- <groupId>com.alibaba.cloudgroupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
- dependency>
2.在应用的 /src/main/resources/application.yml 配置文件中配置 Nacos Config 元数据
- spring:
- cloud:
- nacos:
- config:
- server-addr: 127.0.0.1:8848
- group: DEFAULT_GROUP
- #指定文件名,没有则默认${spring.application.name}
- #指定文件后缀
- file-extension: yml
- config:
- import:
- - optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}
-
- application:
- name: ww-nacos
这里注意一下,官方文档上面给的使用bootstrap.properties来进行配置的,我是使用的application.yml来进行配置的。
【出现的问题以及解决】:
1.没有加入spring.config.import会报错,我在配置文件里面新加了config.import,看上面
- #如果引入了spring-cloud-starter-alibaba-nacos-config,并且使用 import 方式导入配置,
- #项目启动时会自动检测是否引入了 nacos:条目,如果没有 import nacos 条目,
- #会出现如下错误:...
- #Add a spring.config.import=nacos: property to your configuration.
2.动态修改配置发现不能自动刷新,我加了@RefreshScope注解也没法自动刷新,后来我发现,每次启动能获取到nacos配置中心的内容,但是修改配置中心的文件进行发布,刷新发现没有变化,还是一开始启动的内容。
解决:后来我发现我是在yml文件中进行的配置,那需要对应nacos配置中心也得配置成yaml格式,如果是properties就对应properties,我更改了之后发现能自动刷新了。


【注意事项】: spring-cloud-starter-alibaba-nacos-config 模块移除了 spring-cloud-starter-bootstrap 依赖,如果你想以旧版的方式使用,你需要手动加上该依赖,现在推荐使用spring.config.import方式引入配置。
如果你想使用bootstrap来进行配置的话,就在pom.xml文件里面添加该依赖即可,然后按照官方文档进行配置:
- 在pom.xml文件下引入依赖
- <dependency>
- <groupId>org.springframework.cloudgroupId>
- <artifactId>spring-cloud-starter-bootstrapartifactId>
- <version>3.1.0version>
- dependency>
-
-
- //在bootstrap.properties配置文件中
- spring.application.name=ww-nacos
- spring.cloud.nacos.config.server-addr=127.0.0.1:8848
那这样其实可以运行了,不需要添加其他的东西,我是为了统一配置文件才做的。
3.测试一下,在接口类中利用@Value获取配置文件并返回结果,动态刷新:

修改发布一下:

我感觉还是bootstrap.properties好用,后来开发的时候换成了bootstrap
学习: