首页 > 技术文章 > 读取Nacos配置中心的配置文件

upupup-999 2021-06-29 20:13 原文

1、在Nacos创建统一配置文件

(1)点击创建按钮

 

 (2)输入配置信息

 

a)Data ID 的完整规则格式如下

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

- prefix 默认为所属工程配置spring.application.name 的值(即:nacos-provider),也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

- spring.profiles.active=dev 即为当前环境对应的 profile。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

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

 

2、service-statistics模块为例

(1)在service中引入依赖
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

(2)创建bootstrap.properties配置文件

 

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 该配置影响统一配置中心中的dataId,之前已经配置过
spring.application.name=service-statistics

 

(3)把项目之前的application.properties内容注释,启动项目查看效果

3、补充:springboot配置文件加载顺序

其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在。推荐使用yml,更简洁。

bootstrap与application
(1)加载顺序
这里主要是说明application和bootstrap的加载顺序。

bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载
bootstrap.yml 用于应用程序上下文的引导阶段。

bootstrap.yml 由父Spring ApplicationContext加载。

父ApplicationContext 被加载到使用 application.yml 的之前。

(2)配置区别
bootstrap.yml 和application.yml 都可以用来配置参数。

bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
application.yml 可以用来定义应用级别的。

 

三、名称空间切换环境

1、创建命名空间

 

 

 

默认只有public,新建了dev、test和prod命名空间

 

 

2、克隆配置

(1)切换到配置列表:

 

可以发现有四个名称空间:public(默认)以及我们自己添加的3个名称空间(prod、dev、test),可以点击查看每个名称空间下的配置文件,当然现在只有public下有一个配置。

默认情况下,项目会到public下找 服务名.properties文件。

接下来,在dev名称空间中也添加一个nacos-provider.properties配置。这时有两种方式:

第一,切换到dev名称空间,添加一个新的配置文件。缺点:每个环境都要重复配置类似的项目

第二,直接通过clone方式添加配置,并修改即可。推荐

 

 点击编辑:修改配置内容,端口号改为8013以作区分

 

 在项目模块中,修改bootstrap.properties添加如下配置

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 该配置影响统一配置中心中的dataId,之前已经配置过
spring.application.name=service-statistics

spring.cloud.nacos.config.namespace=dfee0c9a-f063-4364-9bd9-4efbaa0f8f31

重启服务提供方服务,测试修改之后是否生效

 

四、多配置文件加载

在一些情况下需要加载多个配置文件。假如现在dev名称空间下有2个配置文件:service-statistics.properties、jdbc.properties

 

 

添加配置,加载多个配置文件

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 该配置影响统一配置中心中的dataId,之前已经配置过
spring.application.name=service-statistics
spring.cloud.nacos.config.namespace=dfee0c9a-f063-4364-9bd9-4efbaa0f8f31
spring.cloud.nacos.config.ext-config[0].data-id=port.properties
spring.cloud.nacos.config.ext-config[0].refresh=true

 

 

推荐阅读