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

image

4.controller

使用 @RefreshScope 注解刷新

@RefreshScope

image

使用 @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配置

image

若指定了开发环境,则名字为:

gulimall-coupon-dev.properties

6.环境配置隔离

命名空间:配置隔离

6.1新增命名空间

image
image
image

6.2作用

可以利用命名空间做环境隔离

bootstrap.properties 下添加配置

#命名空间
spring.cloud.nacos.config.namespace=68e1547d-d96c-4794-bbb5-de2061b13591

7.服务配置隔离

7.1每个微服务创建一个命名空间

7.2配置集

配置集:所有的配置集合
DataID:类似文件名

image

配置分组:默认所有的配置集都属于:DEFAULT_GROUP

bootstrap.properties 下添加配置

spring.cloud.nacos.config.group=dev

7.3拆分配置文件的配置集

image

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>
如果觉得我的文章对你有用,请随意赞赏