环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在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多配置详解相关推荐

  1. SpringBoot配置文件中spring.profiles.active配置详解

    SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...

  2. profiles 配置详解

    profiles 配置详解 @Profile(value = "pro") 1,为什么要使用 profiles 在开发中,一般有两种环境 1,生产环境 [项目上线,客户在使用中,就 ...

  3. profiles配置详解

    10[掌握]profiles配置详解 1.问题 开发环境和真实的项目环境是不样的 8080 80 2,为什么要使用profiles 在开发中,一般有两种环境 1,生产环境 [项目上线,客户在使用中,就 ...

  4. Maven settings.xml配置详解

    首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...

  5. SpringBoot的配置详解application

    SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...

  6. creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器

    Spring Boot的配置详解 在本节中,我们将重点聚焦在Spring Boot的配置方面. 理解Spring Boot的自动配置 按照"约定大于配置"的原则,Spring Bo ...

  7. SpringBoot配置详解

    SpringBoot配置详解 本文链接:http://blog.battcn.com/2018/04/22/springboot/v2-config-properties/ 上一篇介绍了SpringB ...

  8. Spring使用指南 ~ 4、ApplicationContext 配置详解

    ApplicationContext 配置详解 一.应用程序事件 package com.luo.spring.guides.event.xml;import org.springframework. ...

  9. vscode中setting.json配置详解

    vscode中的setting.json配置文件配置详解 话不多说上配置文件 大家按需复制到自己的setting.json配置文件中即可 [{// 控制是否在编辑器中显示 CodeLens." ...

最新文章

  1. vim中如何按一个键就保存文件
  2. 差错控制:海明码、循环冗余校验码
  3. Easyui 让DataGrid适应浏览器宽度
  4. hdu 4768 Flyer 二分
  5. [转载]Informix Dynamic Server维护手册
  6. MMKV集成与原理,成功跳槽阿里!
  7. Python+django网页设计入门(6):文件上传与数据导入
  8. Zabbix监控Dell服务器主机和网络设备
  9. linux进程属性,Linux进程属性及含义
  10. windows 界面设计规则与规范
  11. 职工档案管理系统报告与c语言,[职工档案管理系统C语言.doc
  12. 重启打印机(打印机任务无法取消时)
  13. shortcutwebsite
  14. 自己编写的数据库如何和mapkeeper相连进行评测
  15. java实验报告之模拟银行存取款业务
  16. Android Studio基础输入文本框EditText
  17. 2017年 第8届 蓝桥杯 Java B组 省赛真题详解及总结
  18. php抓取图片curl,php获取远程图片的两种 CURL方式和sockets方式获取远程图片
  19. 揭秘网易云音乐的个性化推荐算法【黑科技】
  20. 【Error】 Linux系统“检测到系统程序错误”

热门文章

  1. 宾馆客房管理系统的概述
  2. 华为防火墙与二层交换机对接配置VLAN上网设置
  3. PaddlePaddle实战系列1——波士顿房价预测
  4. 无盘服务器怎么设置客户端启动,网吧无盘客户端配置向导
  5. 黑马程序员------毕老师视频笔记第六天------面向对象(对象初始化过程)
  6. html鼠标滑轮事件,js鼠标滚轮上下滚动监听事件应用实例(跨浏览器,亲测)
  7. 辅助驾驶功能开发-执行器篇(02)-横向辅助功能(行车)对电动助力转向系统需求
  8. SpringBoot整合canal实现缓存更新
  9. 【机器视觉】视觉工程师必须知道的工业相机50问
  10. 十步杀一人,千里不留行