SpringBoot之bootstrap和application的区别解读
作者:阿福的架构师之路 发布时间:2022-05-03 20:23:07
bootstrap和application的区别说明
bootstrap和application都是SpringBoot项目中的配置文件,他们的区别主要有以下的几个方面
(1)加载顺序区别
bootstrap配置文件是比application配置文件优先加载的,因为bootstrap是由spring父上下文加载,而application是由子上下文加载
(2)优先级区别
bootstrap加载的配置信息是不能被application的相同配置覆盖的,如果两个配置文件同时存在,也是以bootstrap为主
(3)应用场景区别 bootstrap常见应用场景
1.配置一些固定的,不能被覆盖的属性.用于一些系统级别的参数配置
本地的配置文件是默认不能覆盖远程的配置的
2.一些需要加密/解密的场景
3.当你使用了Spring Cloud Config配置中心时,这时需要在boostrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息,专业翻译如下
application常见应用场景
1.常用于SpringBoot项目的自动化配置
2.用于一些应用级别的参数配置
在大部分情况下不用区分这两种情况,只需要使用application即可,效果基本是一致的
SpringBoot配置优先级(bootstrap和application)
bootstrap和application的区别
bootstrap.yml 先于 application.yml。
bootstrap.yml 用于 ApplicationContext 引导阶段。由父 Spring ApplicationContext 加载。定义系统级别的参数配置,这些参数一般不会变动。
application.yml 用来定义应用级别的参数配置。搭配 spring-cloud-config 使用时 application.yml 定义的参数可以实现动态替换。
application.yml 会覆盖 bootstrap.yml 的参数配置。
springboot的配置优先级
由里向外,外层覆盖里层。
命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件
加入springcloud配置中心后
配置中心 > 命令行参数 > 本地application.yml > 本地bootstrap.yml
配置允许覆盖:
spring:
cloud:
config:
allowOverride: true
overrideNone: true
overrideSystemProperties: false
来源:https://blog.csdn.net/weixin_44166705/article/details/120643703


猜你喜欢
- 本文实例讲述了C#简单创建和删除目录的方法。分享给大家供大家参考。具体如下:using System;using System.IO;cla
- 一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二
- 背景断点续传下载一直是移动开发中必不可少的一项重要的技术,同样的Rxjava和Retrofit的结合让这个技术解决起来更加的灵活,我们完全可
- 1、导包,四大核心包,一个切面包(AOP),logging,web,springmvc2、配置文件,核心代码如下:web.xml<se
- 本文实例讲述了Java实现读取及生成Excel文件的方法。分享给大家供大家参考,具体如下:一、读取Excel文件需要先下载poi-3.0.1
- 写在前面之前想尝试把JWT和Shiro结合到一起,但是在网上查了些博客,也没太有看懂,所以就自己重新研究了一下Shiro的工作机制,然后自己
- io学习框架:文件:保存数据的地方。1)常见文件对象的相关构造器和方法:当进行File file = new File(filePath);
- 请求路径匹配路由在spring中,当一个请求过来的时候会做路径匹配,下面我们就从源码层面分析一下路径匹配。示例:@RequestMappin
- 疑问都知道C#有装箱和拆箱的操作,听闻也都是讲int类型转换成object类型就是装箱,将object类型再转回int类型就是拆箱。描述的通
- 前言Lifecycle是Jetpack架构组件中用来感知生命周期的组件,使用Lifecycles可以帮助我们写出和生命周期相关更简洁更易维护
- 前言图片作为内存消耗大户,一直是开发人员尝试优化的重点对象。Bitmap的内存从3.0以前的位于native,到后来改成jvm,再到8.0又
- OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调
- 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的
- 大多数android程序员应该都知道genymotion是一个不错的模拟器,体积小巧,启动速度快。相关的博客也比较多,但是一直以来无法解决a
- 最近在做Android 的MP3播放的项目,要实现歌词的自动滚动,以及同步显示。lyric的歌词解析主要用yoyoplayer里面的,显示部
- Android 动态菜单先上效果图比较简单,主要就是属性动画的使用和坐标角度的小细节。实现实现效果: 图标按照路径一路缩放渐变过来即可。核心
- 效果图:A.绘制圆环,圆弧,文本//1.画圆环//原点坐标float circleX = width / 2;float circleY =
- #define只加一个参数 的解释<stdio.h> 里有:#ifndef __STDIO_H #define &n
- 参考dubbo和shenyu网关实现自定义的SPISPI标注注解标注提供SPI能力接口的注解@Documented@Retention(Re
- 这个CardStackViewpager的灵感来自Github上面的 FlippableStackView开源项目,而我想实现的效果方向上恰