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

  • bootstrap (.yml 或者 .properties)
  • application (.yml 或者 .properties)

为什么会有这两种配置文件呢?大家都清楚它们的区别和具体使用场景吗?

bootstrap/ application 的区别

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

http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#thebootstrapapplicationcontext

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

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 Boot 核心配置文件详解相关推荐

  1. Spring Boot (4)---配置文件详解

    Spring2.0 Boot配置文件详解 配置文件说明 Spring Boot 配置文件允许为同一套应用,为不同的环境用不同的配置文件.比如开发环境.测试环境.生成环境.你可以用 properties ...

  2. 企业分布式微服务云SpringCloud SpringBoot mybatis (二)Spring Boot属性配置文件详解...

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

  3. Spring Boot属性配置文件详解

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

  4. (拿来主义-8) Spring Boot属性配置文件详解(三)

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

  5. SpringBoot2.1.5(16)--- Spring Boot的日志详解

    SpringBoot2.1.5(16)--- Spring Boot的日志详解 市面上有许多的日志框架,比如 JUL( java.util.logging), JCL( Apache Commons ...

  6. MyBatis核心配置文件详解

    MyBatis核心配置文件详解 1.核心配置文件中的标签必须按照固定的顺序 2.properties标签 3.settings标签 4.typeAliases标签 5.environments标签 6 ...

  7. Spring Boot 集成 FreeMarker 详解案例

    年轻就不应该让自己过得太舒服" – From yong 一.Springboot 那些事 SpringBoot 很方便的集成 FreeMarker ,DAO 数据库操作层依旧用的是 Myba ...

  8. druiddatasource配置_Spring核心配置文件详解

    点击蓝字"程序员考拉"欢迎关注! 1:spring的核心配置文件中的各种配置. spring的核心配置文件的名字 叫做 applicationContext.xml,后期也可以通过 ...

  9. Spring Boot(3)---Spring Boot启动器Starter详解

    Spring Boot的启动器Starter详解 Spring Boot 简化了 Spring 应用开发,不需要配置就能运行 Spring 应用, Spring Boot 管理 Spring 容器.第 ...

最新文章

  1. 干货 | 清华大学刘知远 CCL 2018学生研讨会报告(附完整PPT下载)
  2. APK 本地化和去广告
  3. LeetCode 4 两个排序数组的中位数
  4. BZOJ 1103 大都市MEG
  5. 3pc_three phase commit protocol协议理解
  6. 语言 双线性内插_数位语音信号处理概论 Lesson6 语言模型
  7. Linux操作系统下SSH默认22端口修改方法
  8. Ubuntu(Deban)中安装VirtualBox
  9. Q102:光线追踪场景(4)——面朝大海
  10. 老罗的个人网站创建备忘
  11. Linux指令:top
  12. 印刷机软件测试,印刷测控条与测试版
  13. 小型微型计算机小错误,如何查看IBM小型机系统的错误记录
  14. gflags简明使用指南
  15. java代码格式化的快捷键设置_如何使用VS中的快捷键快速格式化代码使好看,整齐...
  16. google 搜索跳转至yahoo
  17. 关于加速器加速后进入游戏显示WiFi功能丢失的解决方法(maybe)
  18. 使用EndNote X9自动生成毕设论文的参考文献
  19. 一键全自动Typora备份印象笔记的工具
  20. windows系统中nginx图片服务器,windows nginx 图片服务器

热门文章

  1. php7与php5的区别,PHP7和PHP5区别
  2. c程序设计语言第五章,c程序设计语言第五章第7题答案
  3. mysqlsql varchar类型只取前四个_Apache Doris0.12.0 发布,进入 Apache 孵化器后第四个正式版本...
  4. windows(xshell)免密码登录
  5. 20180716:开博宣言
  6. bzoj 4012: [HNOI2015]开店
  7. CSS3-transform-style
  8. 上传图片配置文件长度和宽度大小的说明
  9. *.tar.bz2文件解压
  10. Android FrameWork学习(二)Android系统源码调试