Spring.profiles多环境配置原理

spring.profiles的使用详解 本文来说下spring.profiles.active和spring.profiles.include的使用与区别。 阅读详情

配置项目

Spring的profiles有两个变量可以配置

  • spring.profiles.default 默认值,优先级低。当active没有配置时,使用此变量。
  • spring.profiles.active 优先级高,指定当前容器使用哪个profile

一般用法

声明多profile

如果使用spring的profiles机制,第一步要在applicationContext.xml中配置多环境实例。

 <beans profile="development">
    <!-- 开发环境,具体加载bean或者properties文件 -->
 </beans>
 <beans profile="test">
   <!-- 测试环境,具体加载bean或者properties文件 -->
 </beans>   

激活profile

在J2EE项目中,一般通过web.xml配置。

<context-param>
   <param-name>spring.profiles.default</param-name>
   <param-value>development</param-value>
</context-param>

或者

<context-param>
   <param-name>spring.profiles.default</param-name>
   <param-value>test</param-value>
</context-param>

使用java运行参数指定profiles

java运行时可以指定jvm内存参数,这个大家都知道。形式类似下面这样去指定java虚拟机启动的内存设置。

JAVA_OPTS=" -Xms1024m -Xmx1024m  -XX:PermSize=512m -XX:MaxPermSize=512m"

修改tomcat启动脚本,直接修改JAVA_OPTS:

JAVA_OPTS=" -Xms1024m -Xmx1024m  -XX:PermSize=512m -XX:MaxPermSize=512m -Dspring.profiles.active=test"

启动tomcat,发现整个系统启动时,使用profile=test的bean被激活了,证明配置生效。

JAVA 命令参数详解:

1、-D<name>=<value> set a system property  设置系统属性

可以通过System.getProperty("spring.profiles.active")获得这个值。

在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用
当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。

另外,javac -d <目录> 指定存放生成的类文件的位置

Standard System Properties

 

KeyMeaning
"file.separator" Character that separates components of a file path. This is "/" on UNIX and "\" on Windows.
"java.class.path" Path used to find directories and JAR archives containing class files. Elements of the class path are separated by a platform-specific character specified in the path.separator property.
"java.home" Installation directory for Java Runtime Environment (JRE)
"java.vendor" JRE vendor name
"java.vendor.url" JRE vender URL
"java.version" JRE version number
"line.separator" Sequence used by operating system to separate lines in text files
"os.arch" Operating system architecture
"os.name" Operating system name
"os.version" Operating system version
"path.separator" Path separator character used in java.class.path
"user.dir" User working directory
"user.home" User home directory
"user.name" User account name

 

 所谓的 system porperty,system 指的是 JRE (runtime)system,不是指 OS。

总结

使用java的系统参数-D方式即减轻了耦合性,也降低了开发和维护之间交流协作的部分。当有多个部署环境时,提前部署好指定的profile,这点在datasource的指定上面极为好用。



SpringBoot多环境配置实战:spring.profiles.active原理与应用 在软件开发中,多环境配置管理是保障应用在不同部署场景下稳定运行的基础技术。其核心原理在于通过环境标识动态加载对应的配置资源,实现代码与环境的解耦。这一机制的技术价值在于提升开发效率、确保部署可靠性,并支持持续集成与交付流程。在实际应用场景中,它广泛用于数据库连接、日志级别、服务端点等环境相关参数的隔离。本文聚焦SpringBoot框架中的Profile机制,深入解析spring.profiles.active这一核心配置项的工作方式与高级用法,涵盖从基础配置到云原生集成的完整实践路径,帮助开发者构建更健壮的 阅读详情

相关推荐

Spring Boot多环境配置:实现不同环境的灵活切换(附配置示例)

摘要:Spring Boot支持通过多环境配置实现开发、测试和生产环境的灵活切换。核心原理基于application-{profile}.properties配置文件和spring.profiles.active属性,可通过主配置文件、命令行参数或系统环境变量指定运行环境。不同环境可配置独立的数据库连接、日志级别等参数,Spring Boot会按优先级处理配置冲突。掌握多环境配置能有效提升项目部署效率,是Spring Boot高级应用的重要特性。

fykam的博客 1195

Spring Profiles详解

Profiles是Spring框架的核心功能——**允许我们将 bean 映射到不同的Profile**——例如,*dev*、*test* 和 *prod*。

白石的专栏 8547

Spring Profile配置管理:active与include实战解析

Spring Profile是Spring Boot中实现环境隔离的核心机制,通过逻辑分组管理不同环境的配置与Bean定义。其工作原理是基于条件化配置加载,开发者可以灵活切换开发、测试、生产等环境配置。在微服务架构中,Profile技术能有效解决多环境配置差异问题,提升部署效率。实际工程中,spring.profiles.active用于显式激活环境,而spring.profiles.include则实现配置模块化组合,两者配合使用可构建清晰的配置层次结构。本文通过企业级实践案例,详解如何运用Profile

weixin_34099526的博客 361

spring.profiles.default

摘要: 当开发环境、测试环境及生产环境需要不同的dataSource时,可以采用spring的profile定义多个数据源 1.在Spring配置文件中定义开发、测试环境和生产环境 2.在web.xml中, 指定使用哪种环境 spring.profiles.default test 或者 dispatcher org.sp

代码公的博客 3834

RealSense D435i深度相机实战:从像素坐标到三维空间的精准映射(Python实现)

本文详细介绍了使用RealSense D435i深度相机实现从二维像素坐标到三维空间坐标精准映射的两种Python实战方法:深度图反投影法与点云直接查找法。文章涵盖环境搭建、相机对齐、代码实现、性能对比及与YOLO等检测模型结合的进阶应用,并提供了关键的避坑指南和参数调优建议,帮助开发者在机器人、三维重建等项目中高效应用。

weixin_29291573的博客 382

TS808效果器制作教程

TS808效果器制作教程 可以在立创商城购买到大部分的电阻电容和IC,音频接口,踩钉,电位器和电源接口可以去某宝看看都买得到的。链接https//pan.baidu.com/s/1QId1eIE3fJ2u5NLBSISvGA。安装过程过于繁琐,把所有元器件按照图纸焊接完成就可以调试了,祝你们成功!这是TS808经典效果器制作过程的记录。IC是JRC4558。...

qq_18948149的博客 3422

spring中profile属性实现开发、测试、生产环境的切换

profile的用法 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http:/

ZixiangLi的博客 1689

CMOS传输门(互补开关)实战指南 | 设计优化 + 常见问题解析

本文深入解析CMOS传输门(互补开关)的设计优化与常见问题,涵盖导通特性、版图设计、高频应用及混合信号设计等关键领域。通过实测数据和优化技巧,帮助工程师解决衬底连接、信号完整性等实际问题,提升数字和模拟混合信号设计的效率与可靠性。

weixin_29229989的博客 161

补习系列(22)-全面解读 Spring Profile 的用法

目录 一、简介 二、 区分Bean对象 三、 设置Profile 3.1 WebApplicationInitializer接口 3.2 通过 web.xml定义 3.3 JVM启动参数 3.4 环境变量 3.5 appli...

weixin_30387339的博客 363

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

timing window file中的S L T指什么意思

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 771

【框架----Springboot】【2.0】SpringBoot多环境yml文件配置

一、使用Spring Boot Profiles 1. 使用yml文件 首先,我们先创建一个名为 application.yml的属性文件,如下: server: port: 8080 my: name: demo spring: profiles: active: dev --- #development environment spring: profil...

Sunny 1267

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

什么是 Spring Profiles 以及如何在 Spring Boot 中使用:配置与实践指南

是 Spring 框架提供的一种机制,允许开发者为不同的运行环境定义不同的配置(如 Bean 定义、属性文件),并在运行时动态选择激活的 Profile。每个 Profile 对应一组特定的配置,适用于特定的环境或场景(如devtestprod在 Spring Boot 中,Spring Profiles 通过属性文件()、命令行参数或环境变量激活,简化了多环境配置管理。Profiles 与 Spring 的依赖注入和配置管理紧密集成,支持灵活的环境切换。

lssffy的博客 2035

Oracle EBS Interface/API(42) -AP发票客制化付款申请

背景 在OA系统上,选择Oracle EBS的某张AP发票做付款申请,需要类似于锁定该发票以便付款,其他用户或者下次用户不能再次选择该发票做付款申请。 快速参考 参考点 内容 功能导航 N: AP->Invoices->Entry>Invoices 并发请求 None 基表 AP.AP_INV_SELECTION_CRITERIA_ALLAP.AP_SELECTED_INVOICES_ALL API 参考下面介绍 错误信息表 None 接口Form

陈显平的专栏-Oracle EBS 1200

【人工智能】OpenClaw网关API速率限制报错全解析 API rate limit reached. Please try again later.

对应HTTP标准状态码为429(请求过多)。该报错集中出现在OpenClaw GATEWAY DASHBOARD的聊天会话界面,核心特征为:用户最初以为是单一模型服务商的问题,先后更换OpenAI、Gemini、Ollama、Moonshot、Mercury-2等多个主流大模型API后,该报错仍稳定触发,尤其在执行复杂任务时高频出现。

奶爸的编程之路,也就一周冷个三天 6458

Spring Boot 多环境与日志配置

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。SLF4J —— Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象。

wno704的博客 777

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring Boot多环境管理最佳实践(99%开发者忽略的关键细节)

掌握Spring Boot的多环境激活技巧,轻松应对开发、测试与生产环境切换。通过profile配置、外部化属性和Maven集成实现灵活管理,提升部署效率与可维护性。99%开发者忽略的关键细节揭秘,值得收藏。

LogicGlow的博客 780

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

多环境配置及配置文件位置、切换配置环境、自动配置原理、debug: true看到那些自动配置类生效了

多环境配置及配置文件位置、切换配置环境、自动配置原理、debug: true看到那些自动配置类生效了

lan584433411的博客 421

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

springboot3--->springboot的ConfigFileApplicationListener 配置文件应用监听器原理分析

1、简单使用 我们知道spring boot 默认会加载appication.properties配置文件,我们在此配置文件中配置一个name熟悉,然后写一个rest接口进行获取,代码如下: application.properties配置文件中: server.port=8080 name=wen default Controller: @RestController ...

qq_34978129的博客 1676

揭秘Spring Boot多环境激活机制:5分钟彻底搞懂profile的正确使用姿势

掌握Spring Boot多环境的激活方式,轻松应对开发、测试、生产环境切换。详解profile配置、@Profile注解、命令行及配置文件激活方法,提升项目部署灵活性与可维护性,值得收藏。

CompiLume的博客 393

Spring boot项目学习系列一——获取自定义配置,以及多环境配置文件的切换以及获取配置文件原理

最近只要稍微学一点东西就觉得很有收获,好像自己的储备彻彻底底不够用了,需要赶紧补充点技术能量 git上搜到一个大神项目https://github.com/xkcoding/spring-boot-demo,感觉超级棒,于是开启spring boot项目学习之旅 目标:获取配置文件的自定义配置,以及多个环境之间如何切换配置文件 理解:不是很到位没有理解目标的含义,看到这篇文章https://segmentfault.com/a/1190000020247777之后突然理解了 addition..

Sun_of_Rainy的博客 603

spring配置方式多环境配置,配置优先级,条件化装配

当内置条件不满足时,实现Condition// 自定义条件:仅在特定操作系统加载@Override// 使用@Bean考点关键回答Profile 实现原理维护,BeanDefinition 注册时过滤配置优先级设计思想外部化配置优先,符合 12-Factor App 原则条件化装配优势减少不必要的 Bean 创建,实现模块化、可插拔架构Spring Boot 自动配置组合实现 Starter 机制。

zcq88111的博客 228

别再死记硬背了!用‘矛盾特殊性’搞定你的Spring Boot多环境配置难题

本文探讨如何运用哲学中的‘矛盾特殊性’原理解决Spring Boot多环境配置难题。通过分析不同环境的特殊需求,结合Spring Profiles技术实现差异化配置,提供从开发到生产的全流程解决方案,帮助开发者高效管理多环境配置,提升工程实践能力。

weixin_32667955的博客 292

spring Profile

Spring中的Profile是什么为什么要使用Profile如何使用Profile。

mldlds的博客 229

【Spring Boot多环境配置终极指南】:20年架构师亲授IDEA中Profile配置避坑清单与企业级最佳实践

解决IDEA中Spring Boot多环境Profile配置混乱问题,详解application.yml分环境配置、IDEA运行配置激活及Maven Profile绑定方法,覆盖开发/测试/生产场景,提升部署可靠性与团队协作效率。避坑清单+企业级规范,值得收藏。

LogicWander的博客 159
上一篇: 多图详解Spring框架的设计理念与设计模式
下一篇: Linux服务上安装SVN全步骤
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值