目录

  • 1.启动nacos
  • 2.Spring boot 添加依赖
  • 3.在resources文件夹下增加bootstrap.yml文件,添加配置项
  • 4.在nacos中新建配置,管理这里的Data ID是具有一定格式的,需要与项目中的配置对应上。
  • 5.实现动态刷新配置中心。即当配置中心修改值后,项目中的值也会同步修改。
  • 6.配置优先级问题
  • 7.拉取nacos配置
  • 8.有可能遇见的错误:Could not resolve placeholder


1.启动nacos

2.Spring boot 添加依赖


com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config

3.在resources文件夹下增加bootstrap.yml文件,添加配置项

spring:
application:
name: service-name
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 888ac051-ae5f-44f1-940a-30c7824a0e91
file-extension: yaml
group: DEFAULT_GROUP_DEV
profiles:
active: business,environment

4.在nacos中新建配置,管理这里的Data ID是具有一定格式的,需要与项目中的配置对应上。

Nacos的完整格式是:

${prefix}-${spring.profile.active}.${file-extension}

prefix 默认为spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成

${prefix}.${file-extension}

file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

Ps:profiles.active中逗号隔开说明是此服务拥有两个配置。

springboot 集成SparkMLlib springboot 集成nacos配置中心_后端

5.实现动态刷新配置中心。即当配置中心修改值后,项目中的值也会同步修改。

需要在类上面增加@RefreshScope注解即可。

springboot 集成SparkMLlib springboot 集成nacos配置中心_spring_02

6.配置优先级问题

在项目启动时就会去配置中心去读取配置信息(本地的配置文件还能用,但优先级低于配置中心的配置)

7.拉取nacos配置

Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置。
• A: 通过 spring.cloud.nacos.config.shared-configs[n].data-id 支持多个共享 Data Id 的配置
• B: 通过 spring.cloud.nacos.config.extension-configs[n].data-id 的方式支持多个扩展 Data Id 的配置
• C: 通过内部相关规则(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group)自动生成相关的 Data Id 配置
当三种方式共同使用时,他们的一个优先级关系是:A < B < C
共享配置踩坑:共享配置不建议使用shared-dataids,这个在nacos中已经废弃,使用此过程中使用group的时候,shared-dataids无法使用组,默认default_group

8.有可能遇见的错误:Could not resolve placeholder

原因1:在yaml中,值如果为空不可以不写,应该写成’’。
原因2:未引入依赖。