学而实习之 不亦乐乎

SpringBoot 配置文件(application.yml)管理及切换

2024-01-28 20:58:21

在 Java 开发的过程中,经常会遇到在本地开发测试,然后再发布到线上。但测试环境和生产环境必然有不一样的地方。所以很可需要对配置文件进行修改,以适应生产部署,如果每次测试完成后都去修改配置文件,那就过于烦人了。在 SpringBoot 开发中,可以把测试和生产环境的配置文件分别写到不同的配置文件中,这样在上线的时候切换一下就可以了。

一、配置文件的切换

1、创建配置文件

在 resources 下创建三个文件,application.yml application-debug.yml application-release.yml

2、修改配置文件

主配置文件 application.yml 中配置如下:

spring:
  profiles:
      active: debug

debug 环境配置文件 application.yml 中配置如下:

server:
  port: 8080

release 环境配置文件 application.yml 中配置如下:

server:
  port: 8090

3、测试

当测试环境下主配置文件 active 为 debug ;同理,当项目上线时,改为 release.

启动项目,可以看到这两种情况下端口是不同的,说明配置生效了。这里只是简单说明,详细的配置,可根据情况调整。

二、配置文件的引用

在 SpringBoot 开发的过程中,有时候配置文件的配置项非常多,看起来很杂乱,不易管理。这时可以把一些典型的配置分离到其他配置文件中,然后在主配置文件中引用(include)即可。

1. 引用(include)

include: 文件名

在 一 的基础上,创建一个配置文件 application-dev.yml,其内容如下:

server:
  servlet:
    context-path: /test

然后在主配置中引用,如下:

spring:
  profiles:
    active: debug
    include: dev

当需要引用多个配置文件时:

spring:
  profiles:
    active: debug
    include: dev,dev1,dev2

这样,切换配置时也可能会较麻烦,也可以通过 group 来简化处理。如下:

spring:
  profiles:
    active: debug
    group:
      "debug": dev,dev1
      "release": dev2