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

news2024/11/24 11:59:29

        前文讲解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执行刷新指令,实现了在不重启项目的情况,实现了参数配置的刷新。下一篇文章,会在先有项目的基础上,实现参数的自动刷新,敬请等待!

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

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

相关文章

ajax实现百度一下模糊查询功能

1、效果 如下图所示,我们在输入大学时,程序会到后端查询名字中包含大学的数据,并展示到前端页面。 用户选择一个大学,该大学值会被赋值到input表单,同时关闭下拉表单; 当页面展示的数据都不符合条件时&…

【软考】系统架构设计师 - 知识扩展 - “区块链技术“

目录 一 简介👑 1 比特币❤️ 2 区块链的特点❤️ 3 共识算法❤️ 二 练习题👑 三 扩展👑 1 哈希算法❤️ 2 哈希指针❤️ 3 UTXO❤️ 4 参考资料❤️ 一 简介👑 1 比特币❤️ 比特币底层采用了区块链技术。 比特币交易…

android在java代码里面运行shell脚本,使用shell脚本杀死目标进程

android开发中使用shell脚本的比较少,即使使用也是在adb里面直接运行,但是今天我就记录一下怎么在java里面执行shell脚本。 注意:这个需要配置selinux权限,或者你可以直接把selinux权限关闭才能运行 一、写一个shell脚本 这里我…

npm publish包报404,is not in the npm registry错误

1. 指定发布目标2. 登录npm,使用登录名发布包,包名命名原则“登录名/包名”,或 “包名” 3. 删除某一个版本npm unpublish pvfhv/eslint-config-prettier1.0.1 --force 删除后的版本不能重复使用,正式解释: Unfortun…

蓝桥杯官网练习题(凑算式)

类似填空题: ①算式900: https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501 ②九宫幻方③七星填数④幻方填空:https:/…

详解初阶数据结构之顺序表(SeqList)——单文件文件实现SeqList的增删查改

目录 一、线性表 二、顺序表 2.1概念及结构 2.2接口实现 2.3动态顺序表的创建 2.3动态顺序表的初始化 2.3.1传值初始化 2.3.2传址初始化 2.4动态顺序表的清空 2.5动态顺序表的扩容 2.6动态顺序表内容的打印 三、动态顺序表的使用 3.1尾插尾删 3.1.1尾插 3.1.2尾删…

PHP表单token验证防CSRF攻击

在PHP中,表单token是一种安全机制,用于防止跨站请求伪造(CSRF)攻击。 CSRF攻击是一种利用用户身份在未经授权的情况下执行非法操作的攻击方式。 表单token的原理是在表单中生成一个随机的token,并将其存储在服务器端…

第 2 章 线性表 (线性表的静态单链表存储结构(一个数组只生成一个静态链表)实现)

1. 背景说明 A { c, b, e, g, f, d }B { a, b, n, f } 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_RET(ret) if (ret ! RET_OK) { \printf("FuncName: %-15s Line: %-5d ErrorCode: %-3d\n&…

【Redis】Lua脚本在Redis中的基本使用及其原子性保证原理

文章目录 背景一、Eval二、EvalSHA三、Redis 对 Lua 脚本的管理3.1 script flush3.2 script exists3.3 script load3.4 script kill 四、Lua在Redis中原子性执行的原理 背景 Lua 本身是一种轻量小巧的脚本语言,在Redis2.6版本开始引入了对Lua脚本的支持。通过在服务…

高并发环境下压测故障

文章目录 一、高并发压测故障二、JVM 调优1. 堆内存调优2. 堆外内存调优 一、高并发压测故障 每次在大促之前,我们都需要对服务进行压测。而在压测期间,突然爆发了红灯告警,订单量直接少了一半,这是一次很严重的压测故障。首先看…

公司快递账单管理智能化教程

今时不同往日,企业寄件早已摆脱纸质面单,向更为便捷的电子面单过渡。众快递公司为了留住大客户,为其提供更好的服务,早早推出月结模式寄件。办公族应该不陌生,企业如果和快递公司签订月结协议的话,员工寄件…

SEO扫地僧站群·静态生成式养站王,万站秒建,批量养站神器介绍

扫地僧站群静态养站王,程序采用了"织梦CMS"式静态生成式的方式,只需要一个后台管理系统即可管理多个网站,大大提高了建站效率,程序可以适配各种采集器获得的内容,可以方便地实现内容的快速采集,程序支持实时统计和广告插入&#xf…

leetcode刷题--栈与递归

文章目录 1. 682 棒球比赛2. 71 简化路径3. 388 文件的最长绝对路径4. 150 逆波兰表达式求值5. 227. 基本计算器II6. 224. 基本计算器7. 20. 有效的括号8. 636. 函数的独占时间9. 591. 标签验证器10. 32.最长有效括号12. 341. 扁平化嵌套列表迭代器13. 394.字符串解码 1. 682 棒…

docker 部署vue

1: 首先部署nginx docker run --name nginx -d -p 88:80 nginx 2:访问 http://xxxxxxx:88/ 3: 进入nginx docker exec -it nginx /bin/sh 4: 回到vs,编译项目 npm run build 得到dist文件夹 5:创建docker 6: 将…

量化交易最新12篇顶会论文及开源代码汇总(WWW23、AAAI23、KDD23)

对比普通的交易方式,量化交易具有高效性、稳定性以及强风险控制能力,因此,量化交易在金融领域中已经得到了广泛的应用,目前已有许多大型投资机构和对冲基金将量化交易列为其投资组合的重要部分。 本次分享的是我从各大顶会中精选…

826. 安排工作以达到最大收益;2257. 统计网格图中没有被保卫的格子数;816. 模糊坐标

826. 安排工作以达到最大收益 核心思想:排序维护最大利润。首先我们需要对工人按照能力排序,前面工人满足的最大利润后面的工人肯定是满足的,所以我们只需要用一个tmp来维护小于等于当前工人的最大利润,然后如何得到tmp&#xff…

java.lang.Exception: No runnable methods

无可执行test方法异常,报错为: 1.查看是否添加了Test注解在执行的方法上 2.查看测试类的注解 3.查看test类的导包,一定要是junit的。

【SpringMVC】RESTful风格CRUD实现

目录 一、REST简介 1.1 什么是REST? 1.2 REST风格的优点 1.3 请求方式 二、构建项目 ⭐思路分析 2.1 环境准备 2.1.1 导入相关pom依赖 2.1.2 jdbc.properties:配置文件 2.1.3 配置代码生成器 generatorConfig.xml 2.1.4 spring与mybatis整合的配置文件 s…

开机性能-如何抓取开机systrace

一、理论 1.背景 抓取开机 trace 需要使用 userdebug 版本,而我们测试开机性能问题时都要求使用 user 版本,否则会有性能损耗问题。因此想要在抓取开机性能trace 时,需要在 user 版本上打开 atrace 功能之后才能抓取 trace,默认 …

什么是CE认证?CE认证如何办理?亚马逊欧洲站产品适用范围

什么是CE标志? CE标志是欧盟强制认证标志,代表着产品符合欧洲指令的基本要求。这意味着,只有经过认证并贴上CE标志,你的产品才能合法地进入欧洲市场销售。那么,如何让你的产品贴上CE标志呢?接着往下看。 如…