用过 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 配置文件有以下几个应用场景。

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  • 一些固定的不能被覆盖的属性
  • 一些加密/解密的场景;

以下这个截图是一个国外网友问了一个 Spring Cloud 工程师得到的回答。

做过 Spring Cloud 微服务的朋友应该对 bootstrap 的应用十分清楚,Java技术栈也有 Spring Cloud 的实战教程,在 Spring 专题中都能看到。

本文已收录至 Github Spring Boot 学习仓库:

https://github.com/javastacks/spring-boot-best-practice

好了,今天的分享就到这里,关注Java技术栈获取栈长整理的更多的 Spring Boot 教程,都是实战干货。

版权申明:本文系 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。

bootstrap文件不能被识别_Spring Boot 配置文件 bootstrap / application 到底有什么区别?...相关推荐

  1. spring boot配置文件【application.yml】常见问题之一,未添加空格

    正确属性与值: (port:空格8000) server:port: 8000 错误属性与值:(port:8000) server:port:8000 spring boot配置文件[applicat ...

  2. bootstrap文件不能被识别_如何使用npm安装bootstrap

    经过我好多次的查询和实验,总结了一下在vue项目中使用bootstrap框架,npm安装注意.bootstrap中js插件依赖于jquery,所以在这之前必须安装jquery. jquery安装 1. ...

  3. bootstrap文件不能被识别_树莓派安装openCV做图像识别

    有时候我们会使用树莓派和摄像头去做图像识别,在树莓派和LINUX系统中最常用opencv去做图像识别,这次来介绍下树莓派安装opencv和用树莓派做图像识别. 一.树莓派的系统 安装就不介绍了.直接开 ...

  4. bootstrap文件不能被识别_基于 Yara 引擎的二进制文件扫描

    1. 什么是 Yara 引擎? Yara 是一个开源的恶意代码查杀引擎,用来识别和分类恶意软件样本.Yara 本身不提供杀毒功能,也没有自己的特征库,所以它只是个引擎而已. Yara 引擎需要特征规则 ...

  5. springboot上传文件同时传参数_Spring Boot 系列:使用 Spring Boot 上传文件

    上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 2. ...

  6. spring boot配置文件:application.yml (yml与properties文件优缺对比)

    现在我们的application.properties文件内容是: [plain]view plain copy server.port=8090 server.session-timeout=30 ...

  7. C中文件操作的文本模式和二进制模式,到底有啥区别?

    在C中,使用fopen打开文件有两种模式:一种是文本模式,一种是二进制模式.那这两种模式之间有什么区别,是不是使用文本模式打开的文件就只能使用文本函数比如fprintf来操作,而使用二进制打开的文件就 ...

  8. 内核文件ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe到底有什么区别

    简单来说,是同一套源代码根据编译选项的不同而编译出四个可执行文件,分别用于: ntoskrnl - 单处理器,不支持PAE ntkrnlpa - 单处理器,支持PAE ntkrnlmp - 多处理器, ...

  9. java 集成ibm mq 教程_Spring Boot JMS与IBM WebSphere MQ集成配置

    Spring Boot JMS与IBM WebSphere MQ集成配置 [TOC] 前言 Spring Boot作为简化Spring开发的框架,已经为我们集成了ActiveMQ和RabbitMQ.只 ...

最新文章

  1. CentOS 修改/etc/resolv.conf 重启network后又恢复到原来的状态
  2. 海思Hi3559A平台移植 opencv4.0.0
  3. win10计算机右键属性打不开,win10系统右键计算机无法打开属性窗口的解决技巧...
  4. git编译安装与常见问题解决
  5. PAT乙级资料集-2022.04.06
  6. ZZULIOJ 1106: 回文数(函数专题)
  7. 打开终端输入没反应_忘掉Iterm2,试试这款跨平台终端工具
  8. Smith Numbers POJ - 1142 (暴力+分治)
  9. 如何将散乱的css代码规范化、格式化
  10. PYTHON_错误处理
  11. win7如何添加终端服务器,Win7系统如何添加超级终端?Windows7系统超级终端的添加方法...
  12. python下载第三方库超时报错pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pyt
  13. RabbitMQ:Plugin configuration unchanged;解决RabbitMQ启动问题,Win10用户中文问题解决
  14. 城市名字 按a-z排序
  15. 人参果水果宣传文案模版,水果店文案人参果
  16. 1.3 eclips下载与安装
  17. xml文件导入wps_怎么用wpsExcel表打开xml文档
  18. 学习记录 1.Web of Science数据库检索极简版
  19. Apple Mac放大招——搭载M1 Ultra,性能完胜RTX 3090,功耗降低200W
  20. 基于OpenPose的坐姿识别

热门文章

  1. Eclipse配置svn
  2. MacOS下载钉钉直播回放经验总结
  3. Fisher线性判别(*)
  4. matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
  5. Java线程池实现音频播放
  6. 我的世界服务器指令修改拔刀剑,我的世界拔刀剑Mod 合成刀方法作用
  7. java mybatis 搭建_mybatis环境搭建(转载)
  8. sas 文件传输 本地 服务器,SLIM SAS SFF-8654服务器转换线让传输更容易!
  9. python撩妹代码_Python十行代码让你秒变撩妹达人!想学?
  10. java泛型区间_JAVA 14(泛型)