bootstrap与application对比

2023-11-05

用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件

bootstrap (.yml 或者 .properties)
application (.yml 或者 .properties)
为什么会有这两种配置文件呢?大家都清楚它们的区别和具体使用场景吗?

bootstrap/ application 的区别
特意去翻了下 Spring Boot 的官方文档,没有找到关于这两种文件的具体定义,然后再翻了下 Spring Cloud 的官方文档找到了它们的区别。

https://cloud.spring.io/spring-cloud-static/Greenwich.SR1/single/spring-cloud.html#_the_bootstrap_application_context

认真阅读了下文档,原文大概意思是这样。

Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。

bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

因此,对比 application 配置文件,bootstrap 配置文件具有以下几个特性。

  • boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
  • boostrap 里面的属性不能被覆盖

bootstrap/ application 的应用场景

  • application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。
  • bootstrap 配置文件有以下几个应用场景。
    1.使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
    2.一些固定的不能被覆盖的属性
    3.一些加密/解密的场景;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bootstrap与application对比 的相关文章

随机推荐

  • java web的运行原理及内存分配_深入学习Java核心 Java内存分配原理

    String是一个特殊的包装类数据 可以用 String str new String abc String str abc 两种的形式来创建 第一种是用new 来新建对象的 它会在存放于堆中 每调用一次就会创建一个新的对象 而第二种是先在
  • 类加载机制(整个过程详解)

    一 背景 类加载机制是在我们的真个java的运行阶段中的其中一个阶段 二 什么是快乐星球 类加载机制 我们编写的 Java 文件都是以 java 为后缀的文件 编译器会将我们编写的 java 的文件编译成 class 文件 简单来说类加载机
  • How to Train Triplet Networks with 100K Identities?论文简略翻译

    Abstract 摘要 使用大规模数据训练triplet networks对人脸识别具有挑战性 由于可能的triplets数量随着样本数量的增加而爆炸 以前的研究采用在线硬性负面挖掘 OHNM 来处理它 然而 随着identities的数量
  • 【Linux】解决VirtualBox下Ubuntu开机后黑屏

    解决VirtualBox下Ubuntu开机后黑屏 在vbox下运行ubuntu下 有时候会遇到恢复运行时 在账户密码界面显示正常 输入用户名密码登录到桌面则黑屏 可以尝试按以下方法解决 在windows下 以管理员方式打开cmd 运行net
  • Date与时间戳的相互转换

    1 Date对象转换为时间戳 Date date new Date long times date getTime System out println times 效果如下 1508824283292 2 时间戳转换为Date日期对象 l
  • 浏览器和node.js的事件循环有什么区别?

    浏览器和node js的事件循环有什么区别 答案 前置知识 单线程和异步 JS是单线程的 无论是浏览器还是node js 浏览器中JS执行和DOM渲染共用一个线程 所以一次只能进行一件事 执行JS就不能执行DOM渲染 反之亦然 异步 前置知
  • 微信小程序累计访客 UV

    在小程序后台查看 打开这里 然后在这里查看 不过是昨天的数据当天的在下一天更新 也可以登录后台顶部导航栏右侧 将鼠标挺方在手机查看数据上方扫二维码即可查看 还有都告诉了这么多了扫一扫下方小程序码支持一下 谢谢
  • few-shot和zero-shot

    Few shot Learning 少样本学习 是Meta Learning 元学习 中的一个实例 1 所以在了解什么是Few shot Learning之前有必要对Meta Learning有一个简单的认识 不过在了解什么是Meta Le
  • 11-ifcfg配置网络属性

    基础知识准备 需要初步了解OSI TCP IP协议 在tcp ip分层中的 application layer transport layer internet layer datalink layer pysical layer等 以及传
  • Deduction Guides (since C++17)

    History 在C 98中 使用类模板时 即使从使用中可以明显看出它们的类型 也总是必须提供模板参数 std pair
  • python输出1-10

    python输出1 10案例 方法一 for num in range 10 num 1 print num print 方法二 for num1 in range 1 11 print num1
  • Node配置环境

    如果是公司内网 存在代理 很多限制 那该如何配置呢 两种方法 一种在命令行中修改 一种直接修改配置文件 方法一 npm config set proxy http 公司的网站 端口号 npm config set https proxy h
  • c语言随机产生10题,详解C语言的随机数生成及其相关题目

    产生随机数的基本方法 本文中 笔者将介绍c语言所提供的随机数发生器的用法 现在的c编译程序都提供了一个基于一种ANSI标准的伪随机数发生器函数 用来生成随机数 Microsoft和Borland都是通过rand 和srand 函数来支持这种
  • 获取base64编码格式的图片大小

    imageBase就是要传来的图片数据 因为我传来的照片头部已经去掉了 所以这里就不需要再做处理 只做 号的处理就可以了 public int obtainImageSize String imageBase String str imag
  • 线程的查看以及利用gdb调试多线程

    更多linux知识点 linux目录索引 1 线程的查看 首先创建两个线程 include
  • socket编程——select模型

    利用select模型实现多个客户端和一个服务端的CS模型 多路IO复用技术 上一篇 多线程版本 阅前必读 select详解 select 同时监听多个文件描述符 将监控的操作交给内核去处理 委托内核监控可读 可写 异常事件 int sele
  • ai怎么做盒子效果图_AI做局部放大效果图

    前言 局部放大效果图是我们实验中比较常见的 是为了将更小的部分进行放大观察 这种图使用Ps和Ai都可以做 不难 在AI里主要涉及到了剪切蒙版的设置 使用圆形线圈对图进行剪切 放大就可以了 那么我们今天来看一下 这种图怎么做 软件 Adobe
  • 对Kalman(卡尔曼)滤波器的理解

    分类 计算机视觉 转载过来的 觉得不错 原文 http blog csdn net lanbing510 article details 8828109 1 简介 Brief Introduction 在学习卡尔曼滤波器之前 首先看看为什么
  • linux内核互斥锁,linux内核锁机制 - 全文

    在现代操作系统里 同一时间可能有多个内核执行流在执行 因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问 尤其是在多处理器系统上 更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问 在主流的L
  • bootstrap与application对比

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap yml 或者 properties application yml 或者 properties 为什么会有这两种配置文件呢 大家都清