目录
- 一、SpringBoot配置文件
- 二、bootstrap和application区别
- 三、bootstrap和application的应用场景
一、SpringBoot配置文件
-
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
-
a、使用
spring Cloud config
配置中心时,这时需要在bootstrap
配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息; -
b、一些固定的不能被覆盖的配置;
-
c、一些加密/解密的场景;