Spring Boot 多配置文件配置及在不同环境下调用不同的配置文件

2020-02-15

在开发Spring Boot项目时经常会碰到需要多种配置的场景,如本地数据库和线上数据库配置或端口配置不一致,这就需要我们有多套配置,否则每次都要编辑岂不是要被烦死了。

要解决这个问题其实非常简单,比较常见的情况我们会将一个项目配置三个配置文件:

详细步骤

  1. resources目录下创建一个config文件夹
  2. config目录下创建相应的配置文件,命名格式为application-prod.yml,这里以yaml格式为例,properties文件同理。
  3. application-prod.yml填入对应的配置
  4. 在原有的application.yml填写如下内容:
spring:
  profiles:
    active: prod

到目前为止基本的配置就已经完成了,后续只需要切换application.yml文件中的active就可以了,当然事情并没有这么简单,我们还可以做的更好一点。

通过查阅官方文档可知,spring.profiles.active是

Can be overridden by a command line switch.

即该配置项可以由命令行覆盖,那么如何覆盖呢?很简单!一眼就可以看明白:

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

通过这种方式我们就可以在多环境下(开发、生产或测试环境)调用不同配置文件了