依赖导入

  1. <!-- 配置中心来做配置管理-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  5. </dependency>

具体使用流程

创建配置文件

  • resource文件夹下创建bootstrap文件,然后进行配置

image.png

nacos启动以及配置文件绑定

  • 启动nacos之后,在nacos中添加配置,名为微服务名.properties
  • image.png
  • dataid按照微服务名.properties的方式来进行命名
  • group默认为default_group,除此以外可以添加dev,test,prod来适应多场景配置需要
  • 配置内容
    • 配置内容即为常规配置内容
  • 点击发布配置之后,该配置文件交由nacos进行管理,之后在springboot项目中进行配置即可启用

    springboot侧相关配置

    image.png

  • 说明

    • 默认需要设定两个参数
      1. # 配置当前应用名字 即当前微服务的名字
      2. spring.application.name=gulimall-coupon
      3. # 配置nacos配置中心部署的地址ip
      4. spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  • 配置完这两个参数之后,默认去寻找的配置项为 nacos中 data_id 为 gulimall-coupon 的配置文件,默认加载配置分组为default_group

    深入了解

    命名空间

  • 主要用来做配置隔离

默认命名空间为public,默认新增的所有配置都是在public空间下

  • 使用场景
  • 正常使用场景往往是一个产品,同时具有开发环境,测试环境,予发布环境等多个环境,这些环境之间需要做配置隔离。
  • 使用的时候需要在bootstrap.properties文件中指定namespace的id

    当前应用场景为

  • 每个微服务自建立一个同名命名空间

  • 命名空间下建 dev,test,prod 配置分组,用来应对不同业务需求 ```java

配置当前应用名字 即当前微服务的名字

spring.application.name=gulimall-coupon

配置nacos配置中心部署的地址ip

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

指定使用的命名空间

spring.cloud.nacos.config.namespace=1cc35b02-5d63-4e6d-bcc2-2113880ce295 spring.cloud.nacos.config.group=dev

为一个列表,,需要进行赋值

每项中有几个属性,下面进行阐释

data-id 就是nacos中的dataid

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml

group 为 需要使用该dataid的哪个组别,dev,test,prod

spring.cloud.nacos.config.ext-config[0].group=dev

是否开启动态刷新

spring.cloud.nacos.config.ext-config[0].refresh=true

data-id 就是nacos中的dataid

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml

group 为 需要使用该dataid的哪个组别,dev,test,prod

spring.cloud.nacos.config.ext-config[1].group=dev

是否开启动态刷新

spring.cloud.nacos.config.ext-config[1].refresh=true

data-id 就是nacos中的dataid

spring.cloud.nacos.config.ext-config[2].data-id=other.yml

group 为 需要使用该dataid的哪个组别,dev,test,prod

spring.cloud.nacos.config.ext-config[2].group=dev

是否开启动态刷新

spring.cloud.nacos.config.ext-config[2].refresh=true ```

  • 对应的nacos配置如图
  • image.png