一、前言
如果在Spring Cloud Netflix时代,做分布式配置中心比较流行的选择是Spring Cloud Config,那么我们现在用的Spring Cloud Alibaba体系中有没有可以实现同样功能的组件呢?诶嘿,nacos也可以做到~
由于nacos的准备工作在Spring Cloud Alibaba(二)Nacos注册中心这篇博客里面已经有了比较详细的记录,这里就不再赘述了,从配置中心的一些概念起步,然后直接与Spring Cloud进行整合。
二、nacos的一些概念
1、命名空间
命名空间可以类似于我们配置maven时的不同profiles,即可以用来区分不同的环境。当我们需要针对不同的环境进行不同的配置时就可以用到这个功能了。
2、DataId
作用:默认情况下,nacos会根据命名规则,在我们的代码工程中获取几个参数来拼接成DataId,然后再用DataId去nacos中找到相应的配置来进行读取。
拼接公式:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
PS:如果没有配置spring.profiles.active时,则会改为${spring.application.name}.${spring.cloud.nacos.config.file-extension},我们最好还是主动声明spring.profiles.active。
3、Group
顾名思义,即分组的意思。这里既可以用Group来区分环境【不配置命名空间时】,也可以用来表示同一套环境中,不同工程或者不同项目所使用到的一组配置信息。
三、与Spring Cloud整合
1、配置nacos
我们先把需要放在nacos上的配置先整好。
2、pom
<!--PS:由于在上一篇博客中已经制定了Spring Cloud Alibaba的version,这里就不用重复写了--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
3、bootstrap.yml
这里值得注意的是,bootstrap.yml也是Spring Boot的配置文件,且它的加载优先级会高于application.yml。我们启动工程代码时就需要先去nacos读取公用的配置,再进行工程的个性化初始化,所以nacos信息一般都是配置在bootstrap.yml上的。
配置方式1
只读取一个nacos配置时可以使用此方式:
配置方式2
这种方式可以用于需要读取多个nacos配置:
4、application.yml
5、启动工程代码,查看效果