nacos spring-cloud 参考地址: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
Spring Cloud Alibaba Nacos Config 参考地址: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
版本对应说明: https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
${prefix}.${file-extension}
spring-cloud-starter-alibaba-nacos-config 查找文件为 Data Id 以及配置格式
extension-configs
# 多文件配置
shared-configs: [ spring-cloud-config-student.yaml,nacos-config.yaml ]
# 单文件配置, Data Id 指定分组组,设置动态刷新
spring.cloud.nacos.config.extension-configs[2].data-id=nacos-config.yaml
spring.cloud.nacos.config.extension-configs[2].group=REFRESH_GROUP
spring.cloud.nacos.config.extension-configs[2].refresh=true
shared-configs
# 多文件配置
extension-configs: [ spring-cloud-config-student.yaml,nacos-config.yaml ]
# 单文件配置, Data Id 指定分组组,设置动态刷新
spring.cloud.nacos.config.shared-configs[0].data-id=nacos-config.yaml
spring.cloud.nacos.config.shared-configs[0].group=GROUP_APP1
spring.cloud.nacos.config.shared-configs[0].refresh=true
和 springboot 版本对应关系参考 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
2.2.7.RELEASE
server:
port: 20002
spring:
application:
name: SPRING_CLOUD_SERVICE_CONFIG
cloud:
nacos:
config:
server-addr: 42.193.0.90:8848
username: nacos
password: nacos
file-extension: yaml
namespace: 2022-4-1-prod
group: DEFAULT_GROUP
refresh-enabled: true
# prefix: nacos-config.yaml
# extension-configs 和 shared-configs 下面这种写法不支持动态刷新(Data Id 在默认的组 DEFAULT_GROUP,默认不支持配置的动态刷新)
# extension-configs: [ spring-cloud-config-student.yaml,nacos-config.yaml ]
# shared-configs: [ spring-cloud-config-student.yaml,nacos-config.yaml ]
extension-configs:
- data-id: nacos-config.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: spring-cloud-config-student.yaml
group: DEFAULT_GROUP
refresh: true
spring-cloud-config-student.yaml 配置
student:
address: 陕西-西安-新城区-尚德路-油泼面
birthday: 2022-4-1
password: 123456
username: root
nacos-config.yaml 配置
user:
age: 90
name: spring-cloud-nacos-config-properties
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@RefreshScope
public class Student {
@Value("${student.username:admin}")
private String username;
@Value("${student.password:123456}")
private String password;
@Value("${student.address:shanghai}")
private String address;
@Value("${student.birthday:2022-02-22}")
private String birthday;
}
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Autowired
private Student student;
@GetMapping("/student")
public String getStudent() {
return JSONObject.toJSONString(student);
}
}
http://127.0.0.1:20002/config/student 结果如下

Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置。
其中 n 的值越大,优先级越高。
spring.cloud.nacos.config.extension-configs[n].data-id 的值必须带文件扩展名,文件扩展名支持 properties/yaml/yml。 此时 spring.cloud.nacos.config.file-extension 的配置对自定义扩展配置的 Data Id 文件扩展名没有影响。
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: 通过内部相关规则(应用名、应用名+ Profile )自动生成相关的 Data Id 配置
当三种方式共同使用时,他们的一个优先级关系是:A < B < C
通过设置 spring.cloud.nacos.config.enabled = false 来完全关闭 Spring Cloud Nacos Config
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦