1、首先说一下官网对bootstrap和application两种配置文件的区别:
Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖
2、实际中,我遇到的情况是,我单独使用的springboot,不会去加载bootstrap命名的配置文件,而会加载application命名的配置文件,和官方解释有点出入,没找到原因。
3、springcloud使用时,如果要使用注册中心一类的配置,比如consul注册,这样就需要使用bootstrap命名的配置文件,这样才能读到相应配置信息。当然如果是一些公共配置,等项目运行起来后都会去加载。
4、看到网上很多人对这俩区别的根本原因是,加载类不同,一个是父级context,一个是context。我猜想,正式因为springboot和springcloud是不同功能的框架,所以在加载配置信息时也是有区别的。所以综合来说,使用springboot就用application,使用springcloud就用bootstrap,也可能会有混合使用的情况,现在会用就行了。若有大神有更详细的讲解,还望指导一下。
5、springboot版本是1.5.2。