5 多环境配置
在开发过程中,至少需要一个生产环境和开发环境,那么,在SpringBoot中如何做到这两个环境之间的互相切换呢?
5.1 多环境多配置文件切换
- 首先我们创建两个不同环境的yaml配置文件
- application-dev.yaml
server:
port: 8001
- application-prod.yaml
server:
port: 8002
- 创建主要的yaml配置文件
- application.yaml
spring:
profiles:
active: dev
这里我们只需要配置文件后面的缩写就好
测试
改变成生产环境
spring:
profiles:
active: prod
5.2 多环境单配置文件切换
这里我们使用yaml一个配置文件就能实现多环境的切换
spring:
profiles:
active: dev
---
server:
port: 8001
spring:
profiles: dev
---
server:
port: 8002
spring:
profiles: prod
使用三个短横号
---
能够在单一配置文件中划分出多个文件
测试
6 配置文件路径搜索顺序
springboot官网有讲到配置文件路径搜索的顺序:
https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-external-config
配置文件路径搜索的优先递减顺序如下:
file: ./config/
项目路径的config包下的配置文件file: ./config/*/
项目路径下的config包下的任意子包中的配置文件file: /
项目路径下的配置文件classpath: /config/
resources的config包下的配置文件classpath: /
resources下的配置文件
测试,分别在五处不同路径下创建了application.yaml
配置文件,比如1处的配置文件是:
server:
port: 8001
2处的配置文件如下
server:
port: 8002
以此列推,各处路径的配置文件和各个分配port端口号如下
启动程序
我们将1处的配置文件注释掉,再启动:
依次类推,优先级更高的路径会先被搜索并配置其中的参数,同时忽略低优先级路径下配置文件中的相同配置