Profiles多配置详解
环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件。
优先级
命令行方式 > Java系统属性方式 > 系统变量方式 > 配置文件方式
第一种:命令行方式
命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过–spring.profiles.active=test的方式进行激活指定的profiles列表。
使用方式如下所示:
java -jar order-service-v1.0.jar --spring.profiles.active=dev &> order-service.log &
第二种:系统变量方式
Mac/Linux系统配置环境变量
编辑环境变量配置文件/etc/profile
,添加名为SPRING_PROFILES_ACTIVE
的环境变量,如下所示:
# spring 环境激活
export SPRING_PROFILES_ACTIVE=dev
第三种:Windows系统配置环境变量
环境变量的配置方式请参考Java环境变量配置,新建一个名为SPRING_PROFILES_ACTIVE的系统环境变量,设置变量的值为dev即可。
系统变量的方式适用于系统下所部署统一环境的SpringBoot应用程序,如统一部署的都是prod环境的应用程序。
第四种:Java系统属性方式
Java系统属性方式也是一种外部配置的方式,在执行java -jar命令时可以通过-Dspring.profiles.active=test的方式进行激活指定的profiles列表。
使用方式如下所示:
java -Dspring.profiles.active=dev -jar order-service-v1.0.jar &> order-service.log &
注意:-D方式设置Java系统属性要在-jar前定义。
配置文件方式
配置文件方式
是最常用的方式,不过灵活性不强,局限性比较大,不建议使用这种方式来激活配置文件。
我们只需要在application.yml
配置文件添加配置即可,使用方式如下所示:
spring:profiles:# 激活profilesactive: dev
多配置块
#主配置,启动哪个配置文件
spring:profiles:active:- dev#插入开发配置文件
---
spring:profiles: dev
server:port: 8888
#插入生产的配置文件
---
spring:profiles: pro
server:port: 9999
激活多个profile
如果需要激活多个profile
可以使用逗号隔开,如:--spring.profiles.active=dev,test
注意
每一个应用项目都会用到大量的配置文件或者外部配置中心,而配置信息的激活是必不可少的一步,尤为重要。
建议大家使用系统环境变量的方式来激活指定profile的配置,这种方式比较简单,系统全局都可以使用(注意:系统全局代表着该系统下所运行的全部SpringBoot应用都会采用该配置),当然也可以采用优先级替换的规则进行单独指定。
一般dev为开发环境。pro为生产环境。
如果不指定,会优先选择application.yml文件,输出No active profile set, falling back to default profiles: default。
如果指定dev,会输出The following profiles are active: dev
Profiles多配置详解相关推荐
- SpringBoot配置文件中spring.profiles.active配置详解
SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...
- profiles 配置详解
profiles 配置详解 @Profile(value = "pro") 1,为什么要使用 profiles 在开发中,一般有两种环境 1,生产环境 [项目上线,客户在使用中,就 ...
- profiles配置详解
10[掌握]profiles配置详解 1.问题 开发环境和真实的项目环境是不样的 8080 80 2,为什么要使用profiles 在开发中,一般有两种环境 1,生产环境 [项目上线,客户在使用中,就 ...
- Maven settings.xml配置详解
首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...
- SpringBoot的配置详解application
SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...
- creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器
Spring Boot的配置详解 在本节中,我们将重点聚焦在Spring Boot的配置方面. 理解Spring Boot的自动配置 按照"约定大于配置"的原则,Spring Bo ...
- SpringBoot配置详解
SpringBoot配置详解 本文链接:http://blog.battcn.com/2018/04/22/springboot/v2-config-properties/ 上一篇介绍了SpringB ...
- Spring使用指南 ~ 4、ApplicationContext 配置详解
ApplicationContext 配置详解 一.应用程序事件 package com.luo.spring.guides.event.xml;import org.springframework. ...
- vscode中setting.json配置详解
vscode中的setting.json配置文件配置详解 话不多说上配置文件 大家按需复制到自己的setting.json配置文件中即可 [{// 控制是否在编辑器中显示 CodeLens." ...
最新文章
- vim中如何按一个键就保存文件
- 差错控制:海明码、循环冗余校验码
- Easyui 让DataGrid适应浏览器宽度
- hdu 4768 Flyer 二分
- [转载]Informix Dynamic Server维护手册
- MMKV集成与原理,成功跳槽阿里!
- Python+django网页设计入门(6):文件上传与数据导入
- Zabbix监控Dell服务器主机和网络设备
- linux进程属性,Linux进程属性及含义
- windows 界面设计规则与规范
- 职工档案管理系统报告与c语言,[职工档案管理系统C语言.doc
- 重启打印机(打印机任务无法取消时)
- shortcutwebsite
- 自己编写的数据库如何和mapkeeper相连进行评测
- java实验报告之模拟银行存取款业务
- Android Studio基础输入文本框EditText
- 2017年 第8届 蓝桥杯 Java B组 省赛真题详解及总结
- php抓取图片curl,php获取远程图片的两种 CURL方式和sockets方式获取远程图片
- 揭秘网易云音乐的个性化推荐算法【黑科技】
- 【Error】 Linux系统“检测到系统程序错误”