一 配置文件的属性
1.1 配置文件的配置规则
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
说明如下:
prefix 默认为spring.application.name的值
spring.profile.active 即为当前环境对应的profile;
file-extension 为配置内容的数据格式
注意:当spring.profile.active为空时,对应的连接符-也将不存在,dataid的格式变为了: ${prefix}.${file-extension}
1.2 namespace和group和dataID3者之间的联系
1.默认配置
namespace=public ; group=default_group ; cluster=default
2.自定义配置: 话不多说,上答案,如下图:
namespance用于区分部署环境,group和dataId用于逻辑上区分两个目标对象。
1.3 application和bootstrap配置文件重要性
必须含有application.yml和bootstrap.yml配置文件
二 案例:实现读取注册中心的不同环境下的配置文件
2.1 说明groupid和active的作用
spring.profile.active 作用指定读取多环境下不同的配置文件。
默认空间+默认分组+新建的dev和test的DataId 区分不同的配置文件
2.2 映射关系
2.3 读取单个配置文件操作
2.3.1 工程结构
2.3.2 nacos配置namespace,group,dataId
启动nacos,新建namespace和group,DataId
2.3.2.1 新建namespace
1.新建namespance: 默认生产一长串的命名空间id: 05573840-fcf3-472d-a64a-c66b4fe878f4 后面java工程配置参考使用
2.3.2.2 新建group和dataid
2.在新建的namespace新建group,和DataId,如下图
dataId:nacos-config-client-ljf-dev.yaml 配置原则为spring.appliaction.name-[dev|test....]
作用: 后面java工程配置参考使用
group: DEV_GROUP_ljf 配置原则为:所起名称要有意义。 后面java工程配置参考使用
发布保存
3.配置好,截图如下
2.3.3 pom文件
1.pom文件
<!--nacos-config-->
<dependency>
<groupId>***.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>***.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.3.4 配置文件
2.3.4.1 关系
必须含有application.yml和bootstrap.yml配置文件
2.之间配置关系
2.3.4.2 bootstrap文件
代码
# nacos配置
server:
port: 7003
spring:
application:
name: nacos-config-client-ljf
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: DEV_GROUP_ljf
namespace: 05573840-fcf3-472d-a64a-c66b4fe878f4
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml
# nacos-config-client-test.yaml ----> config.info
2.3.4.3 application配置文件
spring:
profiles:
#active: dev # 表示开发环境
active: test # 表示测试环境
#active: info
2.3.5 controller
1.在java代码配置读取远程注册中心nacos文件中内容,如下图所示:
2.3.6 启动类
2.3.7 测试
1.启动成功
2.测试
2.4 动态刷新
为了保证修改nacos的配置文件内容,能够被程序动态读取到,需要在controller类中添加注解。
@RefreshScope //支持Nacos的动态刷新功能。
如图:
测试访问:
配置文件进行修改
再次访问:
2.5 active指定不同文件进行访问
2.5.1.在nacos指定多个配置文件
1.新建配置文件:nacos-config-client-ljf-test.yaml;
注意:在namespace,groupid,配置文件dataid不同:
nacos-config-client-ljf-dev.yaml; nacos-config-client-ljf-test.yaml; 两个不同文件
填写如下图所示内容:
2.修改application中的active配置,这次指定为test文件
3.进行访问:这次看到加载的是 nacos-config-client-ljf-test.yaml文件中的内容,成功显示出来