【SpringCloud】bootrsap和application关系
bootstrap和application是SpringBoot和SpringCloud的配置文件。主要区别和联系如下:
- 加载顺序。bootstrap配置文件比application配置文件优先加载。这是因为bootstrap是由Spring的父上下文(Parent ApplicationContext)加载的,而application则是由子上下文(Child ApplicationContext)加载的。具体来说,加载顺序为:bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml。
- 优先级。bootstrap加载的配置信息默认不能被application中的相同配置覆盖。如果两个配置文件同时存在,bootstrap的配置信息将优先被应用。这一特性使得bootstrap配置文件适合用于配置一些固定的、不能被覆盖的属性,以及需要加密/解密的场景。
- 应用场景不同。
- bootstrap,主要用于从额外的资源(如外部配置中心)加载配置信息;当使用Spring Cloud Config配置中心时,需要bootrstrap配置中心添加练剑到配置中心的配置属性,一遍架子啊外部配置中心的配置信息;适用于配置一些系统级别的的参数,这些参数通常不应该被本地配置文件覆盖。
- application,常用语Spring Boot项目的自动化配置;主要用于应用级别的参数配置,这些配置通常针对特定应用,且可能需要不同的环境(开发、测试、生产)进项调整;在大部分情况下,如果只使用Spring Boot而不涉及Spring Cloud的高级特征,使用application配置文件即可满足需求。
问题
新创建一个 springboot项目,添加了 bootstrap.yml 文件,发现文件并没有如预期变成绿色叶子,编写的时候也没有自动提示。
可能原因:单纯的 springboot 项目只会识别 application.*
配置文件, bootstrap.yml
它不认识啊,所以并没有被识别为配置文件。Spring Cloud项目能识别bootstrap。添加一个依赖,就能把Spring Boot变成Spring Cloud了。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。