动态更改配置参数,使用Nacos配置中心(一定先把Nacos给启动起来,不然会报错误)
java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/service/list after all servers([127.0.0.1:8848]) tried: failed to req API:http://127.0.0.1:8848/nacos/v1/ns/service/list. code:500 msg: java.net.ConnectException: Connection refused: connect
1、做的前提是已经搭建好了Nacos
Nacos的搭建流程
2、我们的目的就是在Nacos的配置中心上做更改,然后我们能读取到最新的信息
3、首先我们在provider中引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
4、然后我们在provider模块的resources目录下加入bootstrap.properties文件(他是在启动类的时候跟随加载,优先级要高于application.properties),然后加入代码
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 该配置影响统一配置中心中的dataId,之前已经配置过
spring.application.name=nacos-provider
5、如果想让我们的配置生效,在provider的controller上加上@RefreshScope注解,他是刷新配置用的
6、现在我们启动服务,点击配置列表
Data ID的组成格式为
${prefix}-${spring.profile.active}.${file-extension}
${prefix}:就是idea中的spring.application.name
${spring.profile.active}:就是idea中的spring.profiles.active,没有的话就不写
${file-extension}:就是idea中的配置文件格式(properties和yml两种)
当前的DataId就是 nacos-provider.properties
如果在配置文件中加入spring.profiles.active=dev
则DataId就是 nacos-provider-dev.properties
Group:随意命名
配置格式:选择你当前配置文件名的格式(properties或者yml)
配置内容:就是我们更改的信息,暂时更改myName=nacosProvider1111
7、上述配置好以后我们查看配置,然后访问接口,看看是否发生了变化