SpringBoot的多配置文件设置

SpringBoot的多配置文件设置

一、配置文件的加载位置

​ springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件。

​ –file:./config/

​ –file:./

​ –classpath:/config/

​ –classpath:/(一般使用这个位置存放配置文件)

​ 优先级由高到底:

​ 即对于不同配置文件中的相同配置项,高优先级的配置会覆盖低优先级的配置;不同配置项会共同起作用。

二、多profile配置

​ 在实际开发中,随着一个项目的进行,往往有开发环境(dev)、测试环境(test)和生产环境(prop)之分,在这种情况下,有些配置项是有区别的,所以我们需要根据环境的不同更改我们的配置,一般有两种方式:

1、修改配置文件方式

​ 我们可以利用多个properties、yaml文件或者yaml文件的多模块特性定义不同环境下的不同配置,然后在默认的配置文件或者默认的模块中**相关配置,这样就可以灵活地根据场景选择合适的配置项了。

​ 1.1 使用yaml文件的多模块特性

​ 主要利用的属性是:

​ spring.profiles:

​ 在yaml中用来为当前的配置模块命名,用于被spring.profiles.active**。

​ spring.profiles.active:

​ 用在默认配置文件或者默认配置模块中,用来**指定的配置文件,例如:spring.profiles.active:dev。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kxt9D1VV-1594016982770)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1594016661279.png)]

​ 1.2 使用多个properties、yaml文件

​ 在多个properties、yaml配置方式中,可以用形如application-dev.properties的方式为特定环境的配置文件命名,等价于1.1中使用spring.profiles指定模块名。

​ 然后在默认的配置文件中使用spring.profiles.active属性指定生效的配置文件,例如:spring.profiles.active:dev。

​ 注意:无论是1.1还是1.2哪一种方式,**指定的配置之后,默认配置中不冲突的部分继续生效,冲突的部分以指定的配置为准。

2、带参数执行启动命令

SpringBoot的多配置文件设置
SpringBoot的多配置文件设置