请注意,本文编写于 2073 天前,最后修改于 640 天前,其中某些信息可能已经过时。
0.优先级
配置中心>本地
1.pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.application.yml
spring:
application:
name: gulimall-coupon
cloud:
nacos:
discovery:
server-addr: http://nacos.chaospring.com/
3. bootstrap.properties
使用 bootstrap.properties 配置文件来配置Nacos Server 地址
spring.application.name=gulimall-coupon
#80端口不能省略
spring.cloud.nacos.config.server-addr=http://nacos.chaospring.com:80
4.controller
使用 @RefreshScope 注解刷新
@RefreshScope
使用 @Value 获取配置内容
@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;
@RequestMapping("/test")
public R test() {
return R.ok().put("name", name).put("age", age);
}
5.nacos配置
若指定了开发环境,则名字为:
gulimall-coupon-dev.properties
6.环境配置隔离
命名空间:配置隔离
6.1新增命名空间
6.2作用
可以利用命名空间做环境隔离
bootstrap.properties 下添加配置
#命名空间
spring.cloud.nacos.config.namespace=68e1547d-d96c-4794-bbb5-de2061b13591
7.服务配置隔离
7.1每个微服务创建一个命名空间
7.2配置集
配置集:所有的配置集合
DataID:类似文件名
配置分组:默认所有的配置集都属于:DEFAULT_GROUP
bootstrap.properties 下添加配置
spring.cloud.nacos.config.group=dev
7.3拆分配置文件的配置集
bootstrap.properties 下添加配置
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
#是否动态刷新 默认是false
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true
spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true
.问题
nacos配置中心超时问题:java.net.ConnectException: no available server, currentServerAddr
单独指定 nacos-client 版本
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>