-
功能上
bootstrap.yml具有引导的功能,通常定义一些不变的系统性的配置。
application.yml通常定义应用级别的配置,一些可变的内容,如果bootstrap.yml与application.yml具有相同的配置,那么application.yml会覆盖bootstrap.yml的配置。 -
顺序上
在同一目录下,bootstrap.yml会优先于application.yml加载,bootstrap.yml应用于上下文的引导阶段,它是由父ApplicationContext加载。
记载顺序:bootstrap.yml > application.yml > application.properties.
后加载的会覆盖之前加载的配置。
springboot加载配置顺序
1、开发者工具
Devtools
全局配置参数;
2、单元测试上的
@TestPropertySource
注解指定的参数;
3、单元测试上的
@SpringBootTest
注解指定的参数;
4、命令行指定的参数,如
java -jar springboot.jar --name="Java技术栈"
;
5、命令行中的
SPRING_APPLICATION_JSONJSON
指定参数, 如
java -Dspring.application.json='{"name":"Java技术栈"}' -jar springboot.jar
6、
ServletConfig
初始化参数;
7、
ServletContext
初始化参数;
8、JNDI参数(如
java:comp/env/spring.application.json
);
9、Java系统参数(来源:
System.getProperties()
);
10、操作系统环境变量参数;
11、
RandomValuePropertySource
随机数,仅匹配:
ramdom.*
;
12、JAR包外面的配置文件参数(
application-{profile}.properties(YAML)
)
13、JAR包里面的配置文件参数(
application-{profile}.properties(YAML)
)
14、JAR包外面的配置文件参数(
application.properties(YAML)
)
15、JAR包里面的配置文件参数(
application.properties(YAML)
)
16、
@Configuration
配置文件上
@PropertySource
注解加载的参数;
17、默认参数(通过
SpringApplication.setDefaultProperties
指定);