优先级:

file:./config/ ( 项目根路径下的config文件夹)
file:./ (项目根路径)
classpath:/config/ (类路径下的config文件夹)
classpath:/ (类路径)

项目根路径:pom文件所在的那个路径
类路径:resources目录
高优先级的配置会覆盖低优先级的配置,没有的配置进行互补配置。打包的时候非类路径的配置文件默认不会打包,所以配置尽量放在类路径下。
配置文件有几种后缀,取值时读取配置文件的顺序为:properties->yaml->yml

bootstrap和application都是SpringBoot项目中的配置文件
bootstrap配置文件是比application配置文件优先加载的,因为bootstrap是由spring父上下文加载,而application是由子上下文加载
bootstrap加载的配置信息是不能被application的相同配置覆盖的,如果两个配置文件同时存在,也是以bootstrap为主
bootstrap常见应用场景
1.配置一些固定的,不能被覆盖的属性.用于一些系统级别的参数配置,本地的配置文件是默认不能覆盖远程的配置的
2.一些需要加密/解密的场景
3.当你使用了Spring Cloud Config配置中心时,这时需要在boostrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息
application常见应用场景
1.常用于SpringBoot项目的自动化配置
2.用于一些应用级别的参数配置
大部分情况下不用区分这两种的使用,只需要使用application即可,效果基本是一致的

附属性加载优先级:
优先级按照顺序由高到低,数字越小优先级越高
1.在命令行中传入的参数。类似于java -jar -Dspring.profiles.active之类。
2.SPRING_APPLICATION_JSON属性,该属性以JSON形式存储在系统环境变量中。
3.java:comp/env中JNDI属性。
4.Java的系统的属性,可通过System.getProperties()获得相关内容。
5.操作系统中的环境变量。
6.通过random.*配置的随机属性。
7.位于当前应用jar包外,针对不同{profile}环境的配置文件内容。
8.位于当前应用jar包内,针对不同{profile}环境的配置文件内容。
9.位于当前应用jar包外的application.properties或application.yml配置内容。
10.位于当前应用jar包内的application.properties或application.yml配置内容。
11.在@Configuration注解修改的类中,通过@PropertySource注解定义的属性。
12.应用默认属性,使用SpringApplication.setDefaultProperties定义的属性内容。