用过 Spring Boot 的都知道在 Spring Boot 中有如下两种配置文件html
为何会有这两种配置文件呢?你们都清楚它们的区别和具体使用场景吗?java
特地去翻了下 Spring Boot 的官方文档,没有找到关于这两种文件的具体定义,而后再翻了下 Spring Cloud 的官方文档找到了它们的区别。spring
认真阅读了下文档,原文大概意思是这样。app
Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还能够在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。加密
所以,对比 application 配置文件,bootstrap 配置文件具备如下几个特性。htm
application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。blog
bootstrap 配置文件有如下几个应用场景。资源
如下这个截图是一个国外网友问了一个 Spring Cloud 工程师获得的回答。文档