六、配置文件加载位置
SpringBoot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的配置文件
- file:./config/
- file:./
- classpath:/config/
- classpath:/
-以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级匹配内容会覆盖低优先级配置的内容。
- 我们也可以通过配置spring.config.location来改变默认配置
操作实例
第四种情况
第三种情况:优先级比第四种高
第一种情况,优先级最高
第二种情况
七、外部配置加载顺序
springBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置
1、命令行参数;
java -jar springboot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.servlet.context-path=/abc
多个配置用空格隔开;--配置项=值
2、来自java:comp/env的JNDI属性
3、Java系统属性(System.getProperties())
4、操作系统环境变量
5、RandomValuePropertySource配置的random.*属性值
由jar包外向jar包内进行寻找
优先加载带profile
6、jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7、jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
再来加载不带profile
8、jar包外部的application.properties或application.yml(不带spring.profile)配置文件
9、jar包内部的application.properties或application.yml(不带spring.profile)配置文件
10、@Configraion注解上的@propertySource
11、通过SpringApplication.setDefaultProperies指定的默认属性