转自:

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.propertiesapplication.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,dev2application-dev1.properties配置:my.name=dev1
my.height=191application-dev2.properties配置:my.name=dev2
#my.height=192application-prod.properties配置:my.name=prod
my.height=182application-prod1.properties配置:my.name=prod1
my.height=188application-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

spring.profiles.active和spring.profiles.include的使用及区别说明相关推荐

  1. springboot启动spring.profiles.active和spring.profiles.include影响的区别

    application.properties文件内容 spring.profiles.active=test4 pring.profiles.include=test3,test5 version=1 ...

  2. spring.profiles.include 跟 spring.profiles.active 的区别

    spring.profiles.include 跟 spring.profiles.active 的区别 背景 我们经常看到springboot的 spring.profiles.active,有时也 ...

  3. springBoot配置spring.profiles.active多环境

    spring.profiles.active多环境配置 springBoot动态配置多环境(dev/test/prod)数据信息读取 pom文件配置 YAML文件配置 springBoot动态配置多环 ...

  4. springboot:spring.profiles.active

    使用maven-install命令导出jar包. 使用 "java -jar jar包名称" 运行jar包 java -jar   springbootmvcproject-0.0 ...

  5. Spring Boot配置@spring.profiles.active配置

    一 pom.xml配置如下: <profiles><profile><id>dev</id><properties><spring.p ...

  6. spring.profiles.active=@profiles.active@ 的使用

    现在在的公司用spring.profiles.active=@profiles.active@ 当我看到这个的时候,一脸蒙蔽,这个@ 是啥意思. 这里其实是配合 maven profile进行选择不同 ...

  7. 【Java】spring.profiles.active无效

    一.假设 1.假设是maven项目 2.假如pom增加了打包插件 3.假设application.yml配置了spring.profies.active 4.假设用到MyBatisPlus且mappe ...

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

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

  9. springboot获取active_springboot 使用spring.profiles.active 区分不同环境下配置文件

    一.新建一个maven 工程 二.在pom.xml文件中加入如下依赖 4.0.0 com.bt.com.cn bt-springboot 0.0.1-SNAPSHOT bt-springboot bt ...

最新文章

  1. OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用
  2. hadoopStreaming---使用Python编写MapReduce
  3. T-SQL Enhancement in SQL Server 2005[上篇]
  4. NLP之TM:基于gensim库调用20newsgr学习doc-topic分布并保存为train-svm-lda.txt、test-svm-lda.txt
  5. Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment
  6. UltiDev Cassini Web Server介绍
  7. 玩转GIT系列之【如何配置GIT的用户名/密码/密钥】
  8. 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
  9. java课题研究方法和技术途径_课题研究的基本方法有哪些?
  10. 各种dns:百度DNS/阿里DNS/114DNS/腾讯DNS/谷歌DNS/OpenDNS 对比评测
  11. 什么是ECS框架?讲解 + 实战带你入门ECS框架
  12. 刽子手c语言,竞赛题目选讲——刽子手的游戏(C语言)
  13. 威胁猎人|改机工具在黑灰产中的应用
  14. python中localtime和gtime的区别及时区计算的代码
  15. ECN Trade:最强飓风来袭,总统大选间断
  16. 【前端灵魂脚本语言JavaScript⑤】——JS中数组的使用
  17. SPM AC原点校正
  18. 计算机论文的摘要和关键词是什么意思,论文中的摘要和关键词是什么?
  19. 魁拔妖侠传 之 浮云骑士语录
  20. java httpresponse headres属性,http响应头首部Content-Length

热门文章

  1. IKBC键盘快捷键(typeman系统)
  2. Java 8 (1) 行为参数化
  3. VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率
  4. cortex M与cortex A
  5. 2021广州设计周:vifa威法携智能家居全新亮相
  6. 合肥计算机学校 吕子立,合肥理工学校校长张良平一行到皖北经济技术学校考察调研...
  7. 牛头刨床c语言编程,牛头刨床C语言模拟.doc
  8. 达内java面试题集_达内java面试题
  9. 计算机毕业设计之民宿管理系统
  10. Ubuntu22 Linux 服务器安装显卡驱动,cuda,cudnn和pytorch