当前位置: 首页 > news >正文

spring.profiles.active和spring.profiles.include的使用及区别说明

转自:

spring.profiles.active和spring.profiles.include的使用及区别说明

下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示

我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息
如:
jdbc地址、ip、端口等
此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常

spring.profiles.active属性

例:
配置文件,可使用以下方式定义
application-${profile}.properties
开发环境配置文件:application-dev.properties
测试环境配置文件:application-test.properties
生产环境配置文件:application-prod.properties

application.properties配置
则可以根据不同的属性切换到不同的配置文件
spring.profiles.active,属性值为${profile}。

spring.profiles.active=dev:用application-dev.properties
spring.profiles.active=test:启用application-test.properties
spring.profiles.active=prod:启用application-prod.properties

例:

java -jar xx.jar --spring.profiles.active=test
注意事项:
此命令的优先级最高
当程序启动时,加入此环境变量时
则会自动启用 application-test.properties配置文件

spring.profiles.include属性

当我们需在开发环境,再次细分配置信息,如:
application-dev1.properties中存储jdbc信息
application-dev2.properties中存储ip、端口信息
即在启用application-dev.properties开发环境(主)配置文件时
同时启用application-dev1.properties和application-dev2.propertie。
此时可使用spring.profiles.include属性
同时启用其他的profile

配置方法

当properties文件:
spring.profiles.include=dev1,dev2
yaml文件配置方法
spring.profiles.include:
-dev1
-dev2

spring.profiles.include:dev1,dev2

spring.profiles.active和spring.profiles.include的使用及区别

配置方式不同

配置方式一:
application.properties中,配置spring.profiles.active=dev的同时指定spring.profiles.include=dev1,dev2
配置方式二:
application.properties中,配置spring.profiles.active=dev,application-dev.properties中
配置spring.profiles.include=dev1,dev2
使用application-dev.properties时自动就激活了dev1、dev2两个文件,不用再次指定

区别

第一种方式启动时
控制台打印The following profiles are active:dev1,dev2,dev
第二种方式启动时
控制台打印The following profiles are active:dev, dev1,dev2
按照顺序
后面的覆盖前面

例:

application-dev.properties配置

my.name=dev
my.height=190

#同时触发dev1和dev2的激活
spring.profiles.include=dev1,dev2

application-dev1.properties配置:

my.name=dev1
my.height=191

application-dev2.properties配置:

my.name=dev2
#my.height=192

application-prod.properties配置:

my.name=prod
my.height=182

application-prod1.properties配置:

my.name=prod1
my.height=188

application-prod2.properties配置:

my.name=prod2
my.height=182

测试一:
在application.properties配置文件中,指定

#激活的是开发环境配置文件
spring.profiles.active=dev

启动时不指定参数
结果:
打印的内容为:姓名:dev2,身高:191

----具体原因如下所示----
先加载application.properties
再加载application-dev.properties,
my.name=dev
my.height=190
加载application-dev1.properties,
my.name=dev1
my.height=191
加载application-dev2.properties,
my.name=dev2
my.height=191

测试二:
在测试一的基础上,启动时指定参数:–spring.profiles.active=prod
优先级最高,会使用生产环境配置文件
以上配置信息,将输出以下信息
打印的内容为:姓名:prod,身高:182

测试三:
在application.properties配置文件中,指定

#激活的是生产环境配置文件
spring.profiles.active=prod
#同时触发prod1和prod2的激活
spring.profiles.include=prod1

启动时不指定参数
—运行以上信息,将输出以下信息
The following profiles are active: prod1,prod2,prod
打印的内容为:姓名:prod,身高:182

相关文章:

  • 基于html的俄罗斯方块小游戏(附程序)
  • MCAL-I/O驱动
  • 考研408数据结构第三章(栈、队列和数组)核心易错点深度解析
  • 01_NLP基础之文本处理的基本方法
  • 附录-Python — 包下载缓慢,配置下载镜像
  • 河南理工XCPC萌新选拔赛
  • SEO长尾词优化进阶法则
  • 【3天快速入门WPF】11-附加属性
  • 绪论(3)
  • AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题解
  • 如何通过Python网络爬虫技术应对复杂的反爬机制?
  • 物联网同RFID功能形态 使用场景的替代品
  • Mac OS Homebrew更换国内镜像源(中科大;阿里;清华)
  • 数据结构秘籍(四) 堆 (详细包含用途、分类、存储、操作等)
  • 【C++】ImGui:极简化的立即模式GUI开发
  • 【数据挖掘】Matplotlib
  • Java零基础入门笔记:(7)异常
  • 【Redis学习】Redis Docker安装,自定义config文件(包括RDB\AOF setup)以及与Spring Boot项目集成
  • 【漫话机器学习系列】112.逻辑回归(Logistic Regression)
  • 使用Node.js搭配express框架快速构建后端业务接口模块Demo
  • wap网站下载/怎样做网络推广
  • 微信搜一搜怎么做推广/网站推广seo
  • 网站_专题建设服务/青岛网站制作公司
  • 网店设计分析/google搜索排名优化
  • 外贸英文网站模板/网站seo快速排名优化
  • 网站支付按钮怎么做/2020国内十大小说网站排名