【Spring Cloud 】进阶之Config配置中心

目录

config大致的一个思路:

二,前期准备

2.1导入依赖

2.2编写bootstrop.yml:

三,编写Controller类

3.1获取单个配置类信息

3.2获取多个配置类信息


                                  🎉🎉欢迎来到我的CSDN主页!🎉🎉

                        🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚

        🌟推荐给大家我的博客专栏《【SpringCloud】之远程消费(进阶使用)》。🎯🎯

                        🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁
————————————————
版权声明:本文为CSDN博主「平顶山大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_73647713/article/details/135429101

今天我们来聊一聊关于Spring Cloud 中的Config知识

config大致的一个思路:

不同环境不同配置:例如数据源在不同的环境(开发,测试,生产)是不同的,可以通过配置中心 运行期间可以动态调整。例如根据各个微服务的负载状况,动态调整数据源连接池大小或者熔断阀 值,并且调整时不停止微服务(配置修改后可以自动更新)。每个服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的。

二,前期准备

bootstrap.yml SpringBoot默认支持properties和YAML两种格式的配置文件。 bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使 用来配置application.yml中使用到参数等 application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用 的公共参数等。 bootstrap.yml 先于 application.yml 加载。

2.1导入依赖

        <!--配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--配置类--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

这两个依赖项在 Spring Cloud 中用于支持配置中心功能。

  1. spring-cloud-starter-alibaba-nacos-config 是 Alibaba Nacos 提供的一个 Spring Cloud Starter,用于集成 Nacos 作为配置中心。Nacos 是一个可扩展的动态服务发现、配置和管理平台,它提供了统一的配置管理和动态配置刷新的能力。通过添加该依赖项,可以在应用程序中使用 Nacos 作为配置中心,集中管理应用程序的配置信息,并实时更新应用程序的配置。

  2. spring-cloud-starter-bootstrap 是 Spring Cloud 提供的一个 Starter,用于支持在应用程序启动阶段加载 bootstrap.yml 配置文件。bootstrap.yml 是在 application.yml 文件之前加载的,用于初始化应用程序的一些关键配置。通过添加该依赖项,可以确保在应用程序启动时,bootstrap.yml 中的配置项被正确加载和使用。

综合起来,通过引入这两个依赖项,可以使用 Nacos 作为配置中心,将应用程序的配置集中存储、管理和更新,并在应用程序启动时加载 bootstrap.yml 文件,以确保关键配置项的正确初始化。这样可以提高配置管理的灵活性和可扩展性,使得应用程序可以更方便地适应不同环境和需求。

2.2编写bootstrop.yml:

server:port: 8082
spring:application:name: providercloud:nacos:server-addr: localhost:8848# username: nacos# password: nacosconfig:prefix: ${spring.application.name} #前缀#指定nacos配置中心地址server-addr: localhost:8848file-extension: yaml # 使用的 nacos 配置集的 dataId 的文件拓展名,同时也是#      Nacos 配置集的配置格式,默认为 properties#      namespace: f1896568-xxxx-45d8-8a93-a64c5bcc22ff # 使用的 nacos 的命名空间,#      默认为 nullgroup: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP# 共享配置集数组shared-configs:- data-id: redisgroup: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUPrefresh: true # 是否自动刷新配置,默认为 fals

三,编写Controller类

3.1获取单个配置类信息

弊端:这样写开发效率低下,容易写错

3.2获取多个配置类信息

使用spring注入依赖的方式:

package com.lya.provider;import com.lya.provider.config.UserProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author 微微*/@EnableDiscoveryClient
@RestController
@RequestMapping("/user")
@Slf4jpublic class ConfigController {//    使用注解读取到yaml中配置信息@Value("${user.name}")private String name;@Value("${user.info}")private String info;@Autowiredprivate UserProperties userProperties;@RequestMapping("/test01")public String getbypath() {log.info("name:{},info:{}", name,info);return "🍗";}@RequestMapping("/test02")public String test02() {log.info("userProperties:{}", userProperties);return "🍗";}}

启动类上加上

@RefreshScope

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux习题6

解析&#xff1a;排序必须得是rwx,所以B不对 解析&#xff1a; /etc/resolv.conf&#xff1a;是DNS配置文件。在网卡配置文件中进行配置&#xff0c;默认情况下&#xff0c;网卡配置文件DNS优于/etc/resolv.conf。 /etc/hostname&#xff1a;在centos7&#xff0c;配置主机名…

Linux时间同步和时间设置

时间分为&#xff1a; 1、hwclock&#xff1a;用于查看硬件时间 hwclock -r&#xff08;--show&#xff1a;读取硬件时钟并打印结果&#xff09; &#xff1a;查看硬件时间 hwclock -s &#xff1a;系统时间向硬件时间同步 hwclock -w &#xff1a;硬件时间向系统时间同步 …

我的第一个前端项目,vue项目从零开始创建和运行

​入门前端&#xff0c;从基础做起&#xff0c;从零开始新建项目 背景&#xff1a;VUE脚手架项目是一个“单页面”应用&#xff0c;即整个项目中只有1个网页&#xff01; 在VUE脚手架项目中&#xff0c;主要是设计各个“视图组件”&#xff0c;它们都是整个网页中某个部分&…

TypeScript 从入门到进阶之基础篇(六) 类型(断言 、推论、别名)| 联合类型 | 交叉类型

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…

自用PHP在线Access转html表格小功能(快速预览access)

自用PHP在线Access转html表格小功能(支持大文件上传,得到一表一文件) 本工具用于Access数据表转html下载供预览,特别适合各类程序员。 开发环境(可能只支持)Windows IIS PHP5.4 其他系统或新版本都不支持 <?php /* //自用PHP在线Access转html表格小功能(支持大文件上传,得…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(十)——Cibersort——完结

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

关于目标检测中按照比例将数据集随机划分成训练集和测试集

1. 前言 在做目标检测任务的时候&#xff0c;不少网上的数据&#xff0c;没有划分数据集&#xff0c;只是将数据和标签放在不同的文件夹下&#xff0c;没有划分数据集 虽然代码简单&#xff0c;每次重新编写还是颇为麻烦&#xff0c;这里记录一下 如下&#xff0c;有的数据集…

常见的缓存淘汰算法

FIFO、LRU、LFU 和 WindowTinyLFU 是常见的缓存淘汰算法&#xff0c;用于决定在缓存容量不足时应该如何选择要淘汰的数据。 常见的缓存淘汰算法包括&#xff1a; FIFO&#xff08;先进先出&#xff09;算法&#xff1a;按照数据最早进入缓存的顺序进行淘汰。即&#xff0c;最先…

HNU-数据库系统-实验3-数据库设计

数据库系统 课程实验3数据库设计 计科210X 甘晴void 202108010XXX 目录 文章目录 数据库系统 课程实验3<br>数据库设计实验目的实验内容实验重难点实验环境实验过程&#xff08;0&#xff09;数据库需求描述&#xff08;1&#xff09;数据库概念结构设计E-R图实体图书馆…

openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位

文章目录 openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位188.1 磁盘满故障引起的core问题188.1.1 问题现象188.1.2 原因分析188.1.3 处理办法 188.2 GUC参数log_directory设置不正确引起的core问题188.2.1 问题现象188.2.2 原因分析188.2.3 处理办…

利用ChatGLM3构建Prompt实现Text2SQL

之前使用ChatGLM3的自定义工具实现了查询MySQL数据库&#xff0c;但感觉功能还是比较受限。 https://blog.csdn.net/weixin_44455388/article/details/135270879?spm1001.2014.3001.5501 使用ChatGLM3实现Text2SQL 前言Text2SQL的构建第一阶段&#xff1a;SQL脚本构建&#xf…

软件工程_复习

软件工程 软件危机(1968 60年代) 产生软件危机的原因: 一方面与软件本身的特点有关,另一方面也和软件开发和维护的方法不正确有关。 与软件本身特点有关: 1.软件不同于硬件,软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难 2.软件在运行过…

Python笔记06-文件操作

文章目录 文件的编码文件读取文件写入文件追加 文件的编码 编码技术即&#xff1a;翻译的规则&#xff0c;记录了如何将内容翻译成二进制&#xff0c;以及如何将二进制翻译回可识别内容。算机中有许多可用编码&#xff1a;UTF-8、GBK、Big5等 不同的编码&#xff0c;将内容翻译…

typescript递归处理

typescript是一种类型强约束的语言&#xff0c;一般来讲定义类型时都要明确指定类型的数据结构。而如果数据结构中涉及到不知道基层嵌套的递归时&#xff0c;就会有一些麻烦。 在 https://stackoverflow.com/questions/51657815/recursive-array-type-typescript 有一个回答…

Java Swing手搓坦克大战遇到的问题和思考

1.游戏中的坐标系颇为复杂 像素坐标系还有行列坐标&#xff0c;都要使用&#xff0c;这之间的互相转化使用也要注意 2.游戏中坦克拐弯的处理&#xff0c;非常重要 由于坦克中心点是要严格对齐到一条网格线&#xff0c;并沿着这条线前进的&#xff0c;如果拐弯不做处理&#…

柠檬Lemon测评机的配置和测试方法

柠檬Lemon测评机的配置和测试方法 只需3步,即可配置好柠檬 第一步:选择g++,点击下一步 第二步:找到g++的目录,添加编译器,点击下一步 第三步:检查结果,点击完成。(此时,配置完成) 只需3步,即可用柠檬做考试测试 第一步:新建比赛

SpringCloud系列篇:核心组件之注册中心组件

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.注册中心组件是什么 二.注册中心…

大模型机器人原理解析:如何从RT/RT2、Berkeley Gello到发展到斯坦福Mobile ALOHA、Google家务机器人

前言 23年7月&#xff0c;我在朋友圈评估Google的RT2说道&#xff1a; “大模型正在革新一切领域啊&#xff0c;超帅&#xff0c;通过大模型不仅能理解“人话”&#xff0c;还能对“人话”进行推理&#xff0c;并转变为机器人能理解的指令&#xff0c;从而分阶段完成任务。回…

opencv006图像处理之仿射变换(旋转,缩放,平移)

空间变换中的仿射变换对应着五种变换&#xff0c;平移&#xff0c;缩放&#xff0c;旋转&#xff0c;翻转&#xff0c;错切。而这五种变化由原图像转变到变换图像的过程&#xff0c;可以用仿射变换矩阵进行描述。而这个变换过程可以用一个2*3的矩阵与原图进行相乘得到。关键就是…

5年经验之谈 —— 探索自动化测试用例设计粒度!

自动化测试用例的粒度指的是测试用例的细致程度&#xff0c;即每个测试用例检查的功能点的数量和范围。 通常&#xff0c;根据测试用例的粒度&#xff0c;可以被分为3种不同的层次&#xff0c;从更低层次的细粒度到更高层次的粗粒度。 第一种&#xff1a;单元测试 - 细粒度 单…