一、概述
1、定义
在我们真实项目中,都会有开发环境,测试环境,生产环境等等。每一种环境的服务器都是不同的,比如:开发环境我们就在Windows上开发,等到生产环境就换成了Linux系统,两个系统的差别很大,所以各种配置也不同(比如:我们开发环境的log记录在D:\logs下,生产环境就是/tmp/logs下,这样的话我们每次打包之前都要手动改一下配置文件的路径吗?假设有很多这样类似的路径呢?很麻烦!!!)
2、方式
2.1、多文件
我们可以编写一个主配置文件:application.yml
,和三个环境配置文件(命名规则有要求):application-{profile}.yml
。默认使用application.yml
里的配置,可以在里面配置激活某个环境配置。
PS:
application.yml
application-dev.yml
application-test.yml
application-prod.yml
2.2、配置块
只有一个主配置文件:application.yml
,里面可以用---
来进行不同环境的不同配置。
二、实操
1、多文件
1.1、主配置
properties.yml
server: port: 8080
1.2、开发环境配置
properties-dev.yml
server: port: 8081
13、测试环境配置
properties-test.yml
server: port: 8082
1.4、生产环境配置
properties-prod.yml
server: port: 8083
1.5、启动测试
结果为端口8080,默认加载主配置文件的配置。那怎么自定义加载某配置文件的配置呢?
如下配置可以激活:
在主配置文件(properties.yml)里:server: port: 8080spring: profiles: active: dev #激活哪个环境
这样再启动测试的话端口就是8081。
2、配置块
2.1、配置
server: port: 8080spring: profiles: active: dev #激活哪个环境---server: port: 8081spring: profiles: dev #指定属于哪个环境---server: port: 8082spring: profiles: test #指定属于哪个环境---server: port: 8083spring: profiles: prod #指定属于哪个环境
PS:就一个配置文件,多环境块由 --- 隔开
三、激活指定profile的方式
1、在配置文件中直接指定spring.profiles.active=dev
。这样的话每次打包都要重新修改配置文件,略麻烦,也易忘。
2、若是直接运行jar包的方式,则使用如下两种都可以:
java -jar spring-boot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev java -jar -Dspring.profiles.active=dev spring-boot-0.0.1-SNAPSHOT.jar
3、若是maven命令运行的话,则使用如下:
mvn spring-boot:run -Drun.profiles=test
作者:编程界的小学生
链接:https://www.jianshu.com/p/bc9ef54f5177