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、带参数执行启动命令