这里利用 spring web
来说明多环境配置。
安装 spring web
1 | <dependency> |
Spring Boot
对多环境整合已经有了很好的支持,能够在打包,运行间自由切换环境。
有两个方法
- 不同的配置放在不同的文件中
- 不同的配置放在相同的文件中
创建不同环境的配置文件
既然每个环境的配置都不相同,索性将不同环境的配置放在不同的配置文件中,因此需要创建三个不同的配置文件,分别是
- application-dev.properties
- application-test.properties
- application-prod.properties
「注意」:配置文件的名称一定要是application-name.properties
或者application-name.yml
格式。这个name
可以自定义,主要用于区分。
此时整个项目中就有四个配置文件,加上application.properties
。
指定运行的环境
虽然你创建了各个环境的配置文件,但是 Spring Boot
仍然不知道你要运行哪个环境,有以下两种方式指定:
配置文件中指定
在 application.properties
或者 application.yml
文件中指定,内容如下:
1 | 指定运行环境为测试环境 |
在 application-test.properties
放 server.port = 8081
在 application-prod.properties
放 server.port = 8082
同样换成 yaml 也是如此,另外,yaml 可以把不同的环境都放到同一个文件中,使用 ---
做分隔。如下,只是 application.yml
的内容
1 | spring: |
以上配置有什么作用呢?
如果没有指定运行的环境,Spring Boot
默认会加载application.properties
文件,而这个的文件又告诉Spring Boot
去找test
环境的配置文件。
运行 jar 的时候指定
Spring Boot
内置的环境切换能够在运行Jar包的时候指定环境,命令如下:
java -jar xxx.jar --spring.profiles.active=test
以上命令指定了运行的环境是test