SpringBoot和SpringCloud 使用 Nacos中的配置中心详情

735 阅读3分钟

Nacos的安装 可查看 这篇博客SpringBoot 和SpringCloud 与Nacos 搭建 并注册服务详解_Json的知识梦工厂-CSDN博客

//Nacos 配置中心

// 配置中心可以做什么事情

// 让 多模块 使用一个配置文件 这样 如果有公共的配置就可以写在配置中心 这样配置文件修改了 就不需要改多地方了

//两种解决办法

// 1. spring cloud config 可以做到配置中心 现在不常用了

// 2. Nacos 替换了 config

// Nacos 可以于 Spring , Spring Boot ,Spring Cloud 集成,并可以代替 spring cloud config

// 通过Nacos Server和 Spring-cloud-starter-alibaba-nacos-config 来实现配置动态变更

// Nacos 配置中心 系统配置的集中管理 动态更新 不重启 回滚配置

//3. Nacos 配置方法 //Data Id配置格式如下

// ${模块名}-${运行环境}.\${文件类型}

//比如:

// spring.application.name=service-edu

// spring.profiles.active=dev

/ 格式为:service-edu-dev.properties

// 当spring.profiles.active 配置为空时 则不需要写 这个 -dev(运行环境) //常用的 文件类型 properties 和 yaml 类型

//4. 把模块下的配置信息 复制到配置中心

//5. spring boot 配置文件加载顺序

// 加载顺序

// bootstrap.yml(bootstrap.properties) 先加载

// application.yml(application.properties) 后加载

// 如果这个配置中有 spring.profiles.active=dev 这个配置

// 他还会加载 application-dev.properties 配置文件 运行环境的配置文件

// bootstrap.yml 用于应用程序上下文的引导阶段

// bootstrap.yml 由父Spring ApplicationContext加载

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

//配置区别:

// bootstrap.yml 可以理解成系统级别的一些参数配置 一般不会改变

// application.yml 用来定义应用级别的

//6. 在项目中读取配置中心 测试

//6.1 引入nacos 配置中心 依赖

//<!-- 配置中心-->

// <dependency>

// <groupId>org.springframework.cloud</groupId>

// <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

// </dependency>

//6.2 把application.properties配置文件复制到 nacos的配置文件中

// 把application.properties 配置文件里的内容 注释掉

1.png

2.png

// 然后创建一个 bootstrap.yml 测试一下 先后顺序

// 把一些 系统配置 放在这里面 比如 Nacos 配置地址 运行环境 等等

3.png

// 然后启动项目 测试 可以更改端口号 看看 启动的端口号 就知道调用了哪个配置文件

// 如果 创建的 配置中心的 文件名中 没有 dev 这个环境值

// 而你现在 在项目里 的配置文件中 加上了

//# 环境设置 dev test prod //spring.profiles.active=dev

//再重启项目后 就找不到配置文件了 就需要重新创创建一个 加 -dev 的配置文件了

//nacos中的 命名空间 // 在实际开发中 我们一般有三个环境

// dev 开发环境

// test 测试环境

// prod 生产环境

// 每运行的环境 需要的配置文件都有些不一样 就可以 配置环境 切换 配置文件

//使用 nacos 中的 命名空间 就不需要根据 spring.profiles.active=dev 这个属性 来切换 运行环境了 // 使用方式 以下截图

4.png

5.png

// 在项目中的配置文件中 加上 一个配置 告诉他 调用的是 配置中心的哪个环境下的配置文件

// #添加 需要调用配置中心的命名空间

// spring.cloud.nacos.config.namespace=153d588a-ae36-48a4-be6a-272b24d6d79e

//重启测试

// 配置加载 Nacos 配置中心 多个配置文件

// 在项目中配置文件中 加上 一个配置 告诉他 有多个配置文件 需要加载

//# 配置 配置文件名 如果还有 \[0] 改成 \[1] 以此类推

//spring.cloud.nacos.config.ext-config\[0].data-id=eduport.properties

//# 开启动态刷新配置,否则配置文件修改,工程无法感知

//spring.cloud.nacos.config.ext-config\[0].refresh=true

//新创建了一个 eduport.properties 配置文件 里面配了一个新的端口 把原来配置文件中的端口号配置注释掉

//然后重启测试 看看是不是 调用了 新的配置文件中的端口号