# 一、配置文件优先级
> 默认读取的配置文件必须以application开头,例如:`application.yaml` 和`application.properties`
- 优先级1:项目根路径下的 `config` 文件夹配置文件
- 优先级2:项目根路径下配置文件
- 优先级3:资源路径`resources`下的`config`文件夹配置文件
- 优先级4:资源路径 `resources` 下配置文件
> 我们还可以从外部加载配置文件
```powershell
java -jar spring-boot-config.jar --spring.config.location=F:/application.properties
```
# 二、多环境配置
> springboot允许我们配置多个配置文件,通过在主配置文件激活不同的环境版本,实现快速切换环境
## 0x01 方式一
我们在配置多个环境的配置文件时,文件名可以是 application-{profile}.properties/yml
`{prifile}` 表示可以自定义的名称,配置文件格式可以为 `properties` 和yml两种
例如:
我们用 `application-test.properties` 代表测试环境配置,`application-dev.properties` 代表开发环境
但是默认情况下,springboot不会启用这些配置文件,我们需要在主配置文件 `application-test.properties/yml` 下选择要激活的环境
.properties
```properties
spring.profiles.active=dev
```
.yml
```yml
spring:
profiles:
active: dev
```
## 0x02 yml的多文档块
使用yml去实现不需要创建多个配置文件,可以在同一配置文件下实现多环境的配置
```yml
server:
port: 8081
#选择要激活那个环境块
spring:
profiles:
active: prod
---
server:
port: 8083
#配置环境的名称
spring:
profiles: dev
---
server:
port: 8084
spring:
profiles: prod #配置环境的名称
```
> **注意:如果yml和properties同时都配置了端口,并且没有激活其他环境 , 默认会使用properties的配置

SpringBoot 文件优先级与多环境