SpringBoot实践(二)配置文件加载顺序

根据官方文档上面来说,属性的配置可以在好多地方,加载的优先级按如下的顺序来分:

1:有使用devtools,devtools 全局设置的属性(用户目录 ~/.spring-bootdevtools.properties)

2:测试类的@TestPropertySource注解

3:测试类的属性@SpringBootTest#properties注解

4:命令行参数(启动springbot项目的时候设置在命令行的参数)

5: 来自SPRING_APPLICATION_JSON中的属性(嵌入到环境变量中的内联JSON或系统属性)。

6:ServletConfig初始化参数

7:ServletContext初始化参数

8:JNDI参数  Java:comp/env

9:Java系统属性  System.getProperties()

10:操作系统的环境变量

11:RandomValuePropertySource配置的属性random.*

12:jar包外部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件

13:jar包内部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件

14:jar包外部的applictaion.properties,applictaion.yml配置文件

15:jar包内部的applictaion.properties,applictaion.yml配置文件

    16:@Configuration类上的 @PropertySource注解指定的配置文件

    17:默认属性: SpringApplication.setDefaultProperties

对于我们开发来说,最常用的就是.propertes和.yml文件了。今天说一下这些配置所在的位置不同,优先级也会不同的问题。

一:对于applictaion-{profile}.properties,applictaion-{profile}.yml和applictaion.properties,applictaion.yml文件来说

它们的优先级,无论文件在那个位置(resource,resource/config,jar包的当前目录下,jar包下面的config文件夹下)都是applictaion-{profile}.properties,applictaion-{profile}.yml的优先级高。

SpringBoot实践(二)配置文件加载顺序_第1张图片

二:对于外部和内部来说,都会有一个config的文件或者没有,最好还是加上因为这样文件多了可以分不同的文件内容管理,对于config内部的和外部的同名的文件,config内部的文件优先级高,注意:是同名的文件,因为这还要注意第一条的内容。

对于jar来说是同样的。

 

 

你可能感兴趣的:(Springboot,springboot配置文件)