在开发Spring Boot项目时经常会碰到需要多种配置的场景,如本地数据库和线上数据库配置或端口配置不一致,这就需要我们有多套配置,否则每次都要编辑岂不是要被烦死了。
要解决这个问题其实非常简单,比较常见的情况我们会将一个项目配置三个配置文件:
- 开发环境(dev)
- 测试环境(test)
- 部署环境(prod)
详细步骤
- 在
resources
目录下创建一个config
文件夹 - 在
config
目录下创建相应的配置文件,命名格式为application-prod.yml
,这里以yaml格式为例,properties文件同理。 - 在
application-prod.yml
填入对应的配置 - 在原有的
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
通过这种方式我们就可以在多环境下(开发、生产或测试环境)调用不同配置文件了