【SpringBoot深入浅出】3 -多环境配置和配置文件路径搜索顺序

5 多环境配置

在开发过程中,至少需要一个生产环境和开发环境,那么,在SpringBoot中如何做到这两个环境之间的互相切换呢?

5.1 多环境多配置文件切换

  1. 首先我们创建两个不同环境的yaml配置文件
  • application-dev.yaml
server:
  port: 8001
  • application-prod.yaml
server:
  port: 8002
  1. 创建主要的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
在这里插入图片描述配置文件路径搜索的优先递减顺序如下:

  1. file: ./config/ 项目路径的config包下的配置文件
  2. file: ./config/*/ 项目路径下的config包下的任意子包中的配置文件
  3. file: / 项目路径下的配置文件
  4. classpath: /config/ resources的config包下的配置文件
  5. classpath: / resources下的配置文件

测试,分别在五处不同路径下创建了application.yaml配置文件,比如1处的配置文件是:

server:
  port: 8001

2处的配置文件如下

server:
  port: 8002

以此列推,各处路径的配置文件和各个分配port端口号如下
在这里插入图片描述
启动程序
在这里插入图片描述
我们将1处的配置文件注释掉,再启动:
在这里插入图片描述

依次类推,优先级更高的路径会先被搜索并配置其中的参数,同时忽略低优先级路径下配置文件中的相同配置

猜你喜欢

转载自blog.csdn.net/Cap220590/article/details/107497977