0、概述
本文内容会解答下面几个问题:
1、SpringBoot默认配置文件的名称是什么?配置文件默认存放位置是什么?
2、如何指定配置文件名称?如何指定配置文件存放位置?
3、如何使用profile指定配置文件?
1、配置文件位置 🆗
1.1、默认配置文件位置和名称(Ex.)🆗
SpringApplication 从以下4个位置加载 application.properties
文件 , 然后将加载的属性放入 Environment,这4个位置如下:
1、当前文件夹下的 config 子文件夹
⚠️当前文件夹指的是项目的根路径,如果当前的项目有父工程,当前文件夹指的是父工程的根路径
2、当前文件夹
3、classpath 下的 config 包
4、classpath
默认的配置文件名称就是application
, 允许3种扩展名:properties
、yml
、yaml
⚠️三种扩展名的文件同时存在情况下,优先级又高到底
1.2、指定配置文件位置和名称(Ex.)🆗
spring.config.name
和 spring.config.location
用作事先确定加载哪些文件,因此必须将它们定义为环境属性 ,通常是 OS 环境变量,系统属性或命令行参数
⚠️同时配置这3个,这3个优先顺序是由高到低,即“程序参数指定”优先级最高,“环境变量指定”优先级最低
(1)、 程序参数指定🆗
java PropertyMainApp --spring.config.location=d:/springboot-conf/ --spring.config.name=yh9002
(2)、 系统参数指定🆗
java PropertyMainApp -Dspring.config.location=d:/springboot-conf/ -Dspring.config.name=yh9001
(3) 、环境变量指定🆗
大家一定配置过JAVA_HOME
, 就是在配置它的地方配置这个两个参数
⚠️注意:配置了两个参数,我的idea需要重启才能读到这个两个参数值
1.3、不同位置配置文件内容互补(Ex.)🆗
上面描述了配置文件的文件名和位置,Spring会读取所有位置的配置文件,取配置文件中所有属性的“并集”
相同的属性情况下,优先级高的文件中的属性会覆盖低优先级文件的属性
2、setter方法属性绑定
3、构造方法属性绑定
4、第三方组件的注入
5、属性校验
6、Profile
7、总结