当前位置: 首页 > news >正文

Springboot 实践(14)spring config 配置与运用--手动刷新

        前文讲解Spring Cloud + zuul 实现了SpringbootAction-One和SpringbootAction-two两个项目的路由切换,正确访问到项目中的资源。这两个项目各自拥有一份application.yml项目配置文件,配置文件中有一部分相同的配置参数,如果涉及到修改,需要进行多处修改。那么有没有一种技术,能够实现这些相同参数的加载呢?能不能实现配置参数的集中修改呢?当然有,这个技术就是Spring Cloud Config技术。

        Spring Cloud Config为架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用环境提供了一个中心化的外部配置,它解决了这两个痛点:

  • 集中式管理

        在开发中多个微服务可能使用相同的配置,假设有50个微服务,如果配置需要修改配置文件,就意味着我们需要修改50个微服务的yml文件。使用配置中心后,就可以做到一处修改,处处修改。

  • 动态修改配置

        使用配置中心,配合actuator可以实现配置的动态修改,无需重启服务。

1、config服务端搭建

        首先利用MyEclipe2019创建web project工程,命名为“Springboot-config-server”,然后依次修改项目文件。

(1)pom.xml文件修改

        添加config配置关联jar包,如下图所示:

(2)application.xml文件修改

此处,采用config的本地配置模式,配置文件的存储路径为“C:/dev/config-repo”,学友们可另行修改,详细如下:

(3)@EnableConfigServer

        在启动文件中,添加@EnableConfigServer注解,启动spring cloud config的配置服务器功能。

(4)启动项目

        到此,项目已经建立完成,可启动项目,查看项目运行情况。由于项目中使用了服务注册软件consul,项目启动前,必须先启动consul软件。项目启动后,在浏览器中输入http://localhost:8500,查看项目注册情况,如下图所示

2、config 客户端搭建

        首先利用MyEclipe2019创建web project工程,命名为“Springboot-config-client”,然后依次修改项目文件。

(1)pom.xml文件修改

        添加config配置关联jar包,如下图所示:

(2)application.xml文件修改

        首先右键选择项目下文件夹“src/main/resources”,创建“bootstrap.yml”文件,用于存储项目中不变更的参数。Springboot在项目加载的过程,默认优先加载“bootstrap.yml”,再通过spring cloud config加载加载配置文件。

        “bootstrap.yml”文件配置参数如下图所示,此处默认从config中心加载“auth-erver”和“mango-config-client”两个文件。

(3)启动函数

        启动函数如下图所示

(4)Controller添加

        创建UserController.java文件,访问配置参数,详细如下图;注意,RestController类添加注解@RefreshScope,动态刷新参数

(5)启动项目

到此,项目已经建立完成,可启动项目,查看项目运行情况。。项目启动后,在浏览器中输入http://localhost:8500,查看项目注册情况,如下图所示

3、配置信息动态刷新

        项目启动之后,可以测试项目配置信息的更新情况;

(1)利用config 服务器查看配置参数

在浏览器中输入地址http://localhost:8020/mango-config-client.yml,返回页面如下图所示:

(2)利用config 客户端查看参数

        在浏览器中输入地址http://localhost:1881/configInfo,返回页面如下图所示:

(3)打开mango-config-client.yml文件,讲“test3”修改“test4”,再执行(1)、(2)两步,发现(1)更新了,但是(2)没有更新;

(4)PostMan手动刷新

        以post方式,发送http://localhost:1881/actuator/refresh,返回如下图所示:

执行完成之后,再通过步骤(2)后,发现得到了新值。

        本文讲解Spring cloud config 参数配置中心,项目建立完成之后,通过postman执行刷新指令,实现了在不重启项目的情况,实现了参数配置的刷新。下一篇文章,会在先有项目的基础上,实现参数的自动刷新,敬请等待!

相关文章:

Springboot 实践(14)spring config 配置与运用--手动刷新

前文讲解Spring Cloud zuul 实现了SpringbootAction-One和SpringbootAction-two两个项目的路由切换,正确访问到项目中的资源。这两个项目各自拥有一份application.yml项目配置文件,配置文件中有一部分相同的配置参数,如果涉及到修改&#xf…...

MyBatisPlus枚举类最佳实践(非常典型和高效的枚举类写法)

目录 1、MyBatisPlus枚举类最佳实践 2、枚举类的作用及问题 3、MyBatisPlus注解实现枚举最佳实践 4、简单来说 5、下面我们看一个使用上述注解的完整枚举类示例: (1)枚举类: (2)DTO类: 6、根据上面…...

uniapp分包 解决分多个包的问题

1. 分包可以分很多个, 但是在"optimization": { "subPackages": true } 里面只能写一个, 2. 想分多个包 , 在 pages.json 里面 的 subPackages 里面继续加 第三个 第四个即可 3. 保存之后 创建页面就可以看见多个包了...

美国封锁激励中国制造业数字化转型的崛起 | 百能云芯

上海在近日公布了第二批工赋链主培育企业名单,共有15家企业入选。这些被称为“链主”的企业在上海制造业数字化转型的过程中扮演着关键角色,类似于领头大雁,它们是上海制造业的数字化网络中的关键节点。 中新社的报道指出,“数字技…...

鼠标键盘自动化工具pyautogui

安装 pip install pyautogui pip install keyboard获取鼠标实时位置 import pyautogui pyautogui.displayMousePosition()样例代码 # https://pyautogui.readthedocs.org/ # https://github.com/asweigart/pyautogui# 紧急停止,手动将鼠标移动到屏幕的4个角落imp…...

0基础学习VR全景平台篇 第96篇:VR电子楼书

大家好,欢迎观看蛙色VR官方系列课程——VR电子楼书! 作为2021年底全新上线的行业解决方案,是专门针对地产、园区数字化营销的一站式VR解决方案,为行业潜在客户提供优质的7x24小时线上看房体验。 本期教程将通过功能介绍后台操作&…...

【MySQL】数据库的约束

MySQL 数据库的约束 文章目录 MySQL 数据库的约束01 数据库的约束1.1 约束类型1.1.1 NOT NULL1.1.2 UNIQUE1.1.3 DEFAULT1.1.4 PRIMARY KEY1.1.5 FOREIGN KEY1.1.6 CHECK 继上文 MySQL基础(一), MySQL基础(二)&#…...

改变金融贷款市场营销方式 ---- 运营商大数据精准获客

与传统的企业网络营销相比,最常见的是网络推广和硬广告推广。一些企业无法找到可靠准确的数据来源,也无法找到一些未知的总数据。这些数据大多存在持续时间长、准确性差的缺点,企业在将这些数据信息应用于商品在线营销时往往会遇到不足。 在…...

SpringBoot实现分页的四种方式

一 自己封装Page对象实现 博客链接 二 使用sql实现分页 2.1 场景分析 前段传递给给后台什么参数? 当前页码currentPage每页显示条数pageSize 后台给前端返回什么数据? 当前页数据List总记录数totalCount 2.2 前段代码 <template><el-paginationsize-change&q…...

远程工作面试:特殊情况下的面试技巧

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

element ui文件上传方法中需要传额外参数

由于文件上传dom是通过循环列表渲染的&#xff0c;在文件上传的时候除了file默认的参数外&#xff0c;还需要访问到循环项item参数&#xff0c;那就这样子传递。 :http-request"(file) > {return httpRequestLT(file, item);} "完整代码如下 <div class"…...

线程池|单例模式|STL、智能指针线程安全|读者写者问题

线程池 线程池的逻辑思想&#xff1a; 每当我们处理一个任务就要创建一个线程&#xff0c;创建线程的开销是很大的。因此我们可以预先创建一批线程&#xff0c;任务队列里没有任务的时候&#xff0c;每个线程都休眠&#xff0c;当队里中有任务的时候&#xff0c;就可以唤醒线程…...

Linux的基本使用和Web程序部署(JavaEE初阶系列18)

目录 前言&#xff1a; 1.Linux 1.1Linux是什么 1.2Linux发行版 1.3Linux环境搭建 1.3.1环境搭建方式 1.3.2使用云服务器 1.4使用终端软件连接到Linux 1.4.1什么是终端软件 1.4.2使用Xshell登录主机 1.5Linux常用的命令 1.5.1ls 1.5.2cd 1.5.3pwd 1.5.4touch 1.…...

EXCEL 中find,if and,if or

接上一篇sql中find函数的作用&#xff0c;由于工作需求是用帆软做报表&#xff0c;他的一些代码不仅有js&#xff0c;sql中的还有一些excel的相关知识&#xff0c;故作整理。 FIND() excel中的find原理和sql中相似&#xff0c;具体可查看 SQL函数 $FIND_Yangshiwei....的博客…...

中国环球电视网-学英文必备

CGTN全称是China Global Television Network&#xff0c;即“中国环球电视网”&#xff0c;这是一个以播送新闻、评论、访谈节目为主的电视频道&#xff0c;CGTN的前身即央视的全英文频道CCTV-9/CCTV News。CGTN每天的节目内容很丰富&#xff0c;包括全球新闻&#xff08;the w…...

【web开发】4.JavaScript与jQuery

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、JavaScript与jQuery二、JavaScript常用的基本功能1.插入位置2.注释3.变量4.数组5.滚动字符 三、jQuery常用的基本功能1.引入jQuery2.寻找标签3.val、text、appe…...

UNI-APP 框架中解决打包后index.html文件中没有引号问题

问题 打包后index.html文件中src属性没有引号。打包后修改默认相对路径为“./”&#xff0c;比如index.xxxx.js中的a.p属性值希望为“./”&#xff0c;默认为“/”。 问题一 在项目根目录下添加文件vue.config.js。在文件中添加如下内容&#xff1a; module.exports {chai…...

借助AI分析哥斯拉木马原理与Tomcat回显链路挖掘

前言 本次分析使用了ChatGPT进行辅助分析&#xff0c;大大提升了工作效率&#xff0c;很快就分析出木马的工作流程和构造出利用方式。 分析 首先对该木马进行格式化,以增强代码的可读性。得到如下代码 <jsp:root xmlns:jsp"http://java.sun.com/JSP/Page" vers…...

Java进行多线程编程?(lambda表达式~)

本文标题&#xff1a;Java进行多线程编程&#xff1f;那么&#xff0c;Java为啥不学学如何进程多进程编程呢&#xff1f;&#xff1f;原因在于&#xff1a;Java圈子中不提倡多进程编程~~ 接下来&#xff0c;我们来写一个最为基础/入门的HelloWord程序来感受如何进行多线程~~ J…...

MySQL中的索引事务(2)事务----》数据库运行的原理知识+面试题~

本篇文章建议读者结合&#xff1a;MySQL中的索引事务&#xff08;1&#xff09;索引----》数据库运行的原理知识面试题~_念君思宁的博客-CSDN博客此时&#xff0c;如果你根据name来查询&#xff0c;查到叶子节点得到的只是主键id&#xff0c;还需要通过主键id去主键的B树里面在…...

OpenClaw+Qwen3-32B自动化办公:会议纪要生成与飞书同步实战

OpenClawQwen3-32B自动化办公&#xff1a;会议纪要生成与飞书同步实战 1. 为什么需要自动化会议纪要 每次开完会最痛苦的事情是什么&#xff1f;对我来说就是整理会议纪要。作为技术负责人&#xff0c;每周要参加5-6个不同主题的会议&#xff0c;会后需要花大量时间回听录音、…...

35 岁前端被优化?我用 AI 转型全栈的完整路径

上周&#xff0c;我 35 岁的前端朋友老张被 HR 叫进会议室&#xff0c;聊了 20 分钟&#xff0c;拿了 N1 走人。 他的技术栈没问题&#xff0c;Vue3TS 都会&#xff0c;项目经验也够。问题在于&#xff1a;他做的所有工作&#xff0c;一个应届生 AI 工具都能搞定。这不是危言耸…...

【PyCon官方认证异步实践标准】:基于aiohttp+uvloop+trio的工业级异步架构设计(含GitHub千星项目源码解析)

第一章&#xff1a;Python异步I/O的核心范式与演进脉络Python异步I/O并非一蹴而就的产物&#xff0c;而是从回调驱动、协程模拟&#xff0c;到原生语法支持的渐进式演进结果。其核心范式始终围绕“单线程并发执行I/O密集型任务”这一目标展开——通过事件循环调度可暂停/恢复的…...

Altium Designer电源层不够用?试试用Split Planes功能把3.3V和5V塞进同一层

Altium Designer电源层不够用&#xff1f;试试用Split Planes功能把3.3V和5V塞进同一层 在四层板设计中&#xff0c;硬件工程师常常面临一个棘手问题&#xff1a;有限的层数如何容纳多种电源和地网络&#xff1f;当3.3V、5V、1.8V以及AGND、DGND都需要专属平面时&#xff0c;传…...

FHE实战:用Python体验全同态加密的医疗数据分析案例

FHE实战&#xff1a;用Python体验全同态加密的医疗数据分析案例 医疗数据隐私保护一直是行业痛点。某三甲医院曾因数据共享导致50万患者信息泄露&#xff0c;直接损失超2亿元。而全同态加密&#xff08;Fully Homomorphic Encryption, FHE&#xff09;技术允许在加密数据上直接…...

2021 年 12 月青少年软编等考 C 语言三级真题解析

目录 T1. 我家的门牌号 思路分析 T2. 子串计算 思路分析 T3. 吃糖果 思路分析 T4. 拨钟问题 思路分析 T5. 分形盒 思路分析 T1. 我家的门牌号 题目链接:SOJ D1124 我家住在一条短胡同里,这条胡同的门牌号从 1 1 1 开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍…...

每天20分钟值不值?淘宝任务自动化的取舍之道

每天20分钟值不值&#xff1f;淘宝任务自动化的取舍之道 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 在数字生活时代…...

Axure RP 全版本界面汉化:从环境配置到深度优化的完整实施指南

Axure RP 全版本界面汉化&#xff1a;从环境配置到深度优化的完整实施指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-c…...

如何实现微信聊天记录的终极掌控:WeChatMsg完全指南

如何实现微信聊天记录的终极掌控&#xff1a;WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…...

Java GeoTools实战:5分钟搞定热力图生成与TIFF文件导出(附完整代码)

Java GeoTools实战&#xff1a;5分钟搞定热力图生成与TIFF文件导出&#xff08;附完整代码&#xff09; 热力图作为一种直观的数据密度可视化工具&#xff0c;在GIS开发中扮演着重要角色。本文将带你快速掌握使用Java GeoTools库生成热力图并导出为TIFF文件的核心技巧&#xff…...