【Spring Cloud】Spring Cloud Config 会加载哪些配置文件原理浅析

文章目录

  • 1. Spring Cloud Config 加载哪些配置文件
  • 2. git 作为配置中心存放配置文件的一些规则
  • 3. 参考资料

本文描述了 Spring Cloud Config 会加载哪些配置文件,以及如何在 git 仓库中合理的安排这些配置文件的结构

1. Spring Cloud Config 加载哪些配置文件

基于 Spring 处理浏览器访问配置中心文件的请求处理器默认只处理一下 2 种形式的请求

  • /{label}/{name}-{profiles}.yml 【这种更常用】
  • /{name}/{profiles:.*[^-].*}

其中 label 被解析为 git 分支,name 被解析为配置文件的名称,profiles 被解析为 profiles,再加上 Spring 的默认配置文件有固定的 application ,所以当 http://localhost:8080/master/order-dev.yml 请求从浏览器发出,它找的是 git 的 master 分支上所有与 orderapplicationorderyml 相关的文件。即可能是:

/order.yml
/order-dev.yml
/application.yml
/application-dev.yml
.....等等

注意是包括但不仅限于以上文件

注意注意即使浏览器 uri 中没有 application 也会加载 application.yml 等文件

有个记忆技巧,就是把 git 当做 classpath 看待,原本 spring boot 如何查找配置文件现在也如何查找配置文件,这就很好理解了。

其实作者看了一下 Spring Cloud Config 的原理,就是在配置中心启动时从 git 上把配置文件拉下来,然后完全是按照 classpath 来处理浏览器的请求的

2. git 作为配置中心存放配置文件的一些规则

原则是不要给自己找一些麻烦来解决

基于上面对配置中心原理的浅显讲解,提出了以下一些规则需要遵守:

  1. 所有配置文件要求 .yml 结尾

  2. 浏览器的请求对应到 git 上的规则

    如请求 http://localhost:8080/master/order-dev.yml 对应到 git 上规则是:

    master 被解析为 git 分支

    order 被解析为 服务的名称(也包括 spring boot 默认的 application 哦哦)

    dev 被解析为 profiles

    解析规则是基于上面提到的『路径匹配

  3. 如果把 git 作为多个项目的配置源

    给每个微服务分配一个文件夹,文件夹的名称是微服务名称;在文件夹内部写 application.yml 等配置文件。举例如下:

    /order/application.yml
    /order/application-dev.yml
    /product/application.yml
    /product/application-dev.yml
    

    当然写的如:微服务名称.yml微服务名称-dev.yml 等文件也会加载,但是非常不建议

  4. git 主目录不写任何配置文件,配置文件都要放到微服务的文件夹内

3. 参考资料

规划化的 git 仓库参考:https://gitee.com/firefish985/springcloud-config

对 Spring Boot 默认加载 application.yml 等文件的理解

通过 debug 方式知道了 Spring 解析请求的规则

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

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

相关文章

代码随想录训练营day1

问题一:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 输入 输出 nums [-1,0,3,5,9,12], target 9 4 …

【Spring系列】数据库初始化

背景 最近在配置数据库的初始化时,遇到 sql:init:schema-locations: classpath:db/schema.sqldata-locations: classpath:db/data.sqlusername: sapassword:网上搜索资料,大同小异,都是无用的资料,于是决定自己研究下数据库的初始…

结构型设计模式之组合模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everythi…

使用POI设计一个限制导出日期为三十天,且导出文件为excel

使用POI设计一个限制导出日期为三十天,且导出文件为excel,前端使用Vue的element ui进行设计,前端可以通过选择时间来导出具体的表格数据,根据用户选择的时间进行Excel文件的数据导出。 按照需求来设计代码,根据element…

SkyWalking链路追踪-Agent (代理人)

基础概念: SkyWalking链路追踪代理(SkyWalking Tracing Agent)是一种用于收集和传输链路追踪数据的工具。它与应用程序一起部署,并通过自动或手动方式来收集关于应用程序中的请求路径和操作的信息。该代理将收集到的数据发送到Sky…

Hadoop学习日记-MapReduce思想及执行流程

MapReduce思想 Map负责“拆分”:即将复杂问题拆分成可以并行计算的小问题,彼此之间几乎没有依赖联系。 Reduce负责对Map阶段的结果进行合并汇总 Map和Reduce的抽象接口如下: map:(k1; v1) — (k2; v2) reduce:(k2; [v2]) — (k3; v3) 一…

看了2023年的一线互联网公司时薪排行榜!值得思考

前言 根据最近针对国内的一线互联网企业做的调研,汇总了他们的平均时薪水平,最终出了一个排行榜! 首先我们来看下,排行榜分哪几个Level,分别为初级、中级、高级、资深、专家/架构这五个,主要根据工程师的…

Druid(德鲁伊)连接池

Druid(德鲁伊)连接池 阿里出品,淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver(代理驱动),一系列内置的JDBC组件库,一个SQL Parser(sql解析器)。支持所有…

基于Javaweb实现ATM机系统开发实战(十四)交易记录分页实现

还是老规矩&#xff0c;先看前端页面查看需要传递哪些参数&#xff0c;并且把逻辑有问题的部分进行修改~ <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib prefix"c" uri&qu…

自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配,用于找到与查询语句最相似的文本

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配&#xff0c;用于找到与查询语句最相似的文本。NLP中的文本匹配是指通过计算文本之间的相似度来找到与查询语句最相似的文本。其中一种常用的方法是基于文本…

Docker安装Redis与Python的交互

Redis数据库&#xff0c;平常做缓存用的最多&#xff0c;之前一直没有记录过redis的安装流程&#xff0c;等到用时才想起来去百度上搜索&#xff0c;然而搜出来的东西十有八九都大同小异。所以这次用docker安装一下&#xff0c;再此记录 redis是一个key-value存储系统。和Memc…

AcrelEMS企业微电网能效管理平台实现用户侧智能配电和智能用电管理-安科瑞黄安南

摘要&#xff1a;随着科技的发展&#xff0c;电力系统正逐步向智能化、数字化、互联网化迈进。智能配电与智能用电是电力产业发展的重要方向&#xff0c;将为传统电力系统带来革命性的变革。本文将对智能配电和智能用电的概念、特点、关键技术及应用进行详细介绍。 1、智能配电…

数据结构初阶--带头双向循环链表

目录 一.带头双向循环链表的定义 二.带头双向循环链表的功能实现 2.1.带头双向循环链表的定义 2.2.带头双向循环链表的结点创建 2.3.带头双向循环链表的初始化 2.4.带头双向循环链表的打印 2.5.带头双向循环链表的判空 2.6.带头双向循环链表的尾插 2.7.带头双向循环链…

【node.js】02-path模块

目录 1. path.join() 2. path.basename() 3. path.extname() 1. path.join() 使用 path.join() 方法&#xff0c;可以把多个路径片段拼接为完整的路径字符串&#xff0c;语法格式如下&#xff1a; path.join([...paths]) 例子&#xff1a; const path require(path)co…

白皮书|数字孪生工厂:成就智能制造的未来

前言 目前我国已经进入“技术应用”的数字孪生双驱动时代&#xff0c;在市场需求和国家政策的推动下&#xff0c;各地因地制宜发展数字孪生技术&#xff0c;深入开展数字孪生应用建设。今天我们就重点来聊一聊数字孪生技术在工厂中的应用&#xff0c;希望通过本次案例的深度剖析…

深“扒”云原生高性能分布式文件系统JuiceFS

JuiceFS 是一款面向云原生设计的高性能分布式文件系统&#xff0c;在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性&#xff0c;可将几乎所有对象存储接入本地作为海量本地磁盘使用&#xff0c;亦可同时在跨平台、跨地区的不同主机上挂载读写。 JuiceFS 简介 JuiceFS…

测试PHP与MySQL数据库连接查询,新手

创建库 &#xff1a;create database if not exists web; 创建表 &#xff1a; create table if not exists web.students(id int,name varchar(3),age int,birth datetime); 插入数据&#xff1a;insert web.students values (1,"张三",18,now()),(1,"李…

智慧养殖APP及小程序多端跨平台技术选型分析

智慧养殖APP及小程序多端跨平台技术选型分析 1. 框架选择 ------Uniapp------ 优势&#xff1a;使用Vue.js语法&#xff0c;学习成本较低&#xff1b;一套代码&#xff0c;能同时支持APP/H5/小程序&#xff0c;是较为全面的跨平台框架。 ​ 开发小程序的不二选择&#xff0c;…

线性代数——特征值和特征向量

文章目录 版权声明补充知识求和公式的性质常用希腊字符读音 特征值和特征向量相似矩阵相似对角化实对称矩阵 版权声明 本文大部分内容皆来自李永乐老师考研教材和视频课。 补充知识 求和公式的性质 ∑ i 1 n k a i k ∑ i 1 n a i \sum_{i1}^nka_ik\sum_{i1}^na_i i1∑n​…

visual studio 2022换背景遇到的问题

如果要自定义背景图&#xff0c;则可以下载ClaudialIDE 1.在拓展->点击拓展管理->右上角搜索background->点击下载ClaudialIDE->加载完之后需要关闭vs界面进行下载&#xff0c;下载失败&#xff0c;弹出“由于出现以下错误 无法安装一个或多个扩展”。 解决&#x…