为什么Spring Cloud 应用程序中,应用程序的加载配置必须写在bootstrap.yaml这个配置文件中,是在哪里规定的?

在 Spring Cloud 应用程序中,bootstrap.yaml(或bootstrap.properties)的使用并非强制性的,但它扮演着一个特定的角色,主要是因为 Spring Cloud 的设计和工作流程。

背景和设计

Spring Cloud 构建在 Spring Boot 之上,提供了用于开发分布式系统中常见模式的工具,如配置管理、服务发现、断路器等。为了实现这些功能,Spring Cloud 需要在应用程序的正常启动流程之前读取配置信息,比如从配置服务器获取配置或设置服务发现客户端。

bootstrap 上下文的角色

  • 早期配置加载bootstrap.yaml 用于在应用程序的ApplicationContext创建之前加载配置信息,创建一个“bootstrap”上下文。这个上下文负责从外部源加载配置(例如,配置服务器)并使其在主应用程序上下文启动之前可用。
  • 应用程序上下文与Bootstrap上下文:Bootstrap上下文是父上下文,而应用程序上下文是它的子上下文。这意味着在bootstrap上下文中定义的任何配置都会优先于应用程序上下文中的配置。

官方文档和实践

虽然 Spring Cloud 文档提到了 bootstrap.yaml 的使用,但并没有强制规定所有的配置都必须放在这里。bootstrap.yaml 的使用主要是由于上述设计决定,这是为了满足特定的技术需求,如动态配置更新、密钥管理等。

Spring Cloud 2020.0.0(也称为 Ilford)及更新版本的变化

值得注意的是,从 Spring Cloud 2020.0.0 开始,Spring Cloud 引入了新的配置处理方式,这可能改变了 bootstrap.yaml 的使用。在这个和后续版本中,可以通过 Spring Boot 的原生配置文件(application.yamlapplication.properties)管理早期配置,使用新的属性加载机制。这是通过设置spring.config.import属性来实现的,可以指定配置服务器等外部配置源。

结论

bootstrap.yaml 的使用是基于 Spring Cloud 对特定配置管理需求的解决方案。虽然不是强制性的,但它在早期配置加载和特定Spring Cloud 功能(如配置刷新)中发挥着关键作用。随着 Spring Cloud 的发展,这些实践可能会发生变化,建议查阅最新的 Spring Cloud 文档以获取当前的最佳实践。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

鸿蒙 Stage模型-应用组件-配置、UIAbility

前提:基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌) 一、概念 可以看到分为运行期、编译器,主要关注UIAbility(类似Activity,UI相关&#xff0…

2024年软考-官方最新考试安排出来了,软考新调整,很重要,但也很惹人气愤

官方最新通知,关于2024年度计算机技术与软件专业技术资格(水平)考试工作计划 笔试改机考后,必然会迎来调整,但有点让人费解。 这次调整变动主要是每年考试的次数调整,很多改为了一年一考,具体…

Ansible playbook 简介 使用场景

Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。   通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系…

Claude 3 模型发布,压力来到OpenAI这边了~

Anthropic 发布了 Claude 3 系列,包含了三款模型 各具特色,旨在为用户提供更智能、更快速、更高效的选择,可以说是是迄今为止最快、最强大的人工模型! Anthropic 一度是 OpenAI 最强力的竞争对手! 随着 Claude3 的发…

云计算 3月5号 (DNS域名解析及部署)

DNS域名解析服务 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。…

408专业课130+|我的备考经验和复盘

408的四门课任务量多到爆炸!但难度不止于此。别忘了大部分选计算机的勇士们,是要考数学的!直接起飞。 408数学无疑是王炸王炸,要想上岸就一定要把这两个大头一起拿下! 作为一个成功上岸的非计算机专业跨考生&#xf…

linux系统ELK组件介绍

ELK组件介绍 ELK组件介绍Elasticsearch:Logstash:Kibana:Kafka: Filebeat: ELK 官网地址:https://www.elastic.co 官网搭建:https://www.elastic.co/guide/index.html 组件介绍 Elasticsearch: 是一个基于Lucene的搜…

CSS全局样式的设置,web开发交流

面试题 HTML 1,html5有哪些新特性? 2,html5移除了那些元素? 3,如何处理HTML5新标签的浏览器兼容问题 戳这里领取完整开源项目:【一线大厂前端面试题解析核心总结学习笔记Web真实项目实战最新讲解视频】…

【十一】【SQL】外连接(左外连接,右外连接)

数据库中的外连接(Outer Join)用于连接两个表,并包括两个表中的匹配行以及左表(LEFT JOIN)或右表(RIGHT JOIN)中未匹配的行。外连接分为两种主要类型: 左外连接(LEFT OU…

如何用python实现Can总线通讯

今天去广交会参展, 里面关于工业, 有很多基于profinet、can等总线通讯协议的硬件网关, 好像总线协议一般都用于硬件嵌入式层面, 纯软方面很少涉及, 那如何使用python进行Can总线通讯呢? CAN(Controller Area Network)总线是一种常用于汽车和工业自动化中的通信协议。在…

day58 异常 IO流

异常 1异常处理机制 编译时错误 运行时错误 代码逻辑错误 2异常类结构图 java.lang.Throwable 所有异常的父类 只有它能剖出异常 java.lang.Error: extends Throwable 程序中的硬件严重问题不需要处理 java.lang.Exception extends Throwable 异常 指出要捕获的处理条件 3异常…

外贸独立站使用简站WordPress模板搭建的优势

在全球化的商业浪潮中,外贸独立站成为了企业走出国门、开拓国际市场的重要桥梁。而简站WordPress模板作为一种高效、便捷的建站工具,正受到越来越多外贸企业的青睐。本文将从多个方面分析使用简站WordPress模板搭建外贸独立站的优势。 一、快速搭建&…

深入理解现代JavaScript:从语言特性到应用实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 JavaScript作为一门动态、解释性脚本语言&…

网络工程师笔记8

华为VRP系统 设备管理方式 web管理方式 命令行管理方式 修改命令:undo 基础配置命令

001 概述

什么是API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。为了…

INFINI Labs 产品更新 | Easysearch 1.7.1发布

INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1。此次版本重点修复历史遗留 Bug 、网友们提的一些需求等。以下是本次更新的详细说明。 INFINI Console v1.23.0 INFINI Console 是一款非常轻量级的多集…

express+mysql+vue,从零搭建一个商城管理系统9--添加商户

提示:学习express,搭建管理系统 文章目录 前言一、新建models/shop.js二、新建routes/shop.js三、修改routes下的index.js四、添加商户总结 前言 需求:主要学习express,所以先写service部分 一、新建models/shop.js models/shop.…

PortSwigger 基于dom的漏洞-利用 DOM 破坏来启用 XSS

进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析 function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadys…

#QT(串口助手-实现)

1.IDE:QTCreator 2.实验 3.记录 (1)在widget.h中加入必要文件,并且定义一个类指针 (2)如果有类的成员不知道怎么写,可以通过以下途径搜索 (2)设置串口数据 void Widget…

海王星(Neptune)系列和大禹(DAYU)系列OpenHarmony智能硬件配置解决方案

海王星(Neptune)系列和大禹(DAYU)系列OpenHarmony智能硬件对OS的适配、部件拼装配置、启动配置和文件系统配置等。产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}_。 解决方案的目录树规则如下&…