用过 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 工程师得到的回答。

本文转自: https://www.cnblogs.com/javastack/p/11003795.html

最新文章

  1. 前端之JavaScript
  2. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[1]
  3. hdu 5569 matrix dp
  4. Catalyst揭秘 Day8 Final 外部数据源和缓存系统
  5. powerbulider9.0在数据窗口中实现滚动到新添加行
  6. 通过扩展RandomAccessFile类使之具备Buffer改善I/O性能--转载
  7. linux系统自动执行任务(转)
  8. java动态代理和cglib动态代理
  9. naive bayes
  10. 解决sqlserver2008 r2 登陆时报错:provider 命名管道提供程序, error40 错误2
  11. SharePoint:备份和还原
  12. JAVA爬虫实践(实践四:webMagic和phantomjs和淘宝爬虫)
  13. Unity Bolt插件 基本使用
  14. UOJ188 Sanrd Min_25筛
  15. C# Json序列化去掉k__BackingField问题的解决方案
  16. 每天一个linux命令(4):mkdir
  17. msvc命令行cl编译c程序问题及解决
  18. Appium Desktop-Permission to start activity denied.
  19. stark组件开发之排序
  20. spring boot学习总结(二)-- 关于@SpringBootApplication的一些基础知识点

热门文章

  1. 【南工程开源计划】南京工程学院 信息与通信工程学院 课程设计说明书(论文) 宽带接入技术--WLAN接入设计
  2. 石川es6课程---13-16、generator-认识生成器函数
  3. XAMPP是什么?
  4. java和C++之间的调用
  5. 浅谈JS中 reduce() 的用法
  6. 由STL map调用clear后,内存不返还给操作系统的问题出发,探讨glibc malloc/free行为(转)
  7. 六十五:CSRF攻击与防御之CSRF防御之form表单防御
  8. IntelliJ IDEA 设置检查 serialVersionUID
  9. 算法之顺序、二分、hash查找
  10. Python列表排序