多环境是最多见的配置隔离
方式之一,能够根据不一样的运行环境提供不一样的配置信息来应对不一样的业务场景,在SpringBoot
内支持了多种配置隔离的方式,能够激活单个或者多个配置文件。java
激活的profiles
要在项目内建立对应的配置文件,格式为application-{profile}.yml
。spring
命令行方式
是一种外部配置的方式,在执行java -jar
命令时能够经过--spring.profiles.active=test
的方式进行激活指定的profiles
列表。api
使用方式以下所示:架构
java -jar order-service-v1.0.jar --spring.profiles.active=dev &> order-service.log &复制代码
Mac/Linux系统配置环境变量app
编辑环境变量配置文件/etc/profile
,添加名为SPRING_PROFILES_ACTIVE
的环境变量,以下所示:框架
# spring 环境激活
export SPRING_PROFILES_ACTIVE=dev复制代码
Windows系统配置环境变量测试
环境变量的配置方式请参考Java环境变量配置,新建一个名为SPRING_PROFILES_ACTIVE
的系统环境变量,设置变量的值为dev
便可。spa
系统变量的方式适用于系统下所部署统一环境的
SpringBoot
应用程序,如统一部署的都是prod
环境的应用程序。命令行
Java系统属性方式
也是一种外部配置的方式,在执行java -jar
命令时能够经过-Dspring.profiles.active=test
的方式进行激活指定的profiles
列表。code
使用方式以下所示:
java -Dspring.profiles.active=dev -jar order-service-v1.0.jar &> order-service.log &复制代码
注意:
-D
方式设置Java系统属性
要在-jar
前定义。
配置文件方式
是最经常使用的方式,不过灵活性不强,局限性比较大,不建议使用这种方式来激活配置文件。
咱们只须要在application.yml
配置文件添加配置便可,使用方式以下所示:
spring:
profiles:
# 激活profiles
active: dev复制代码
命令行方式 > Java系统属性方式 > 系统变量方式 > 配置文件方式复制代码
通过测试命令行方式
的优先级最高,而内部配置文件方式
则是最低的。
若是须要激活多个profile
可使用逗号隔开,如:--spring.profiles.active=dev,test
每个应用项目都会用到大量的配置文件或者外部配置中心,而配置信息的激活
是必不可少的一步,尤其重要。
建议你们使用系统环境变量
的方式来激活指定profile
的配置,这种方式比较简单,系统全局均可以使用(注意:系统全局表明着该系统下所运行的所有SpringBoot应用都会采用该配置
),固然也能够采用优先级替换的规则
进行单独指定。
做者我的 博客
使用开源框架 ApiBoot 助你成为Api接口服务架构师