spring profile 多环境配置管理详解

发布时间 - 2026-01-10 22:36:32    点击率:

 spring profile 多环境配置管理

现象

  如果在开发时进行一些数据库测试,希望链接到一个测试的数据库,以避免对开发数据库的影响。
  开发时的某些配置比如log4j日志的级别,和生产环境又有所区别。
  各种此类的需求,让我希望有一个简单的切换开发环境的好办法。

解决

  现在spring3.1也给我们带来了profile,可以方便快速的切换环境。

  使用也是非常方便。只要在applicationContext.xml中添加下边的内容,就可以了

<!-- 开发环境配置文件 -->
  <beans profile="test">
    <context:property-placeholder location="/WEB-INF/test-orm.properties" />
  </beans>

  <!-- 本地环境配置文件 -->
  <beans profile="local">
    <context:property-placeholder location="/WEB-INF/local-orm.properties" />
  </beans>

  profile的定义一定要在文档的最下边,否则会有异常。整个xml的结构大概是这样

<beans xmlns="..." ...> 
 <bean id="dataSource" ... /> 
 <bean ... /> 
 <beans profile="..."> 
  <bean ...> 
 </beans> 
</beans>

激活 profile

  spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,这里我们通过定义 JVM 参数实现。

1、ENV方式:

ConfigurableEnvironment.setActiveProfiles("test")

2、JVM参数方式:

  tomcat 中 catalina.bat(.sh中不用“set”) 添加JAVA_OPS。通过设置active选择不同配置文件

set JAVA_OPTS="-Dspring.profiles.active=test"

  eclipse 中启动tomcat。项目右键 run as –> run configuration–>Arguments–> VM arguments中添加。local配置文件不必上传Git追踪管理

-Dspring.profiles.active="local"

3、web.xml方式:

<init-param>
 <param-name>spring.profiles.active</param-name>
 <param-value>production</param-value>
</init-param>

4、标注方式(junit单元测试非常实用):

@ActiveProfiles({"unittest","productprofile"})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# spring  # profile  # 多环境配置管理  # 多环境  # 多环境配置管理详解  # springboot学习笔记之 profile多环境配置切换的实现方式  # 使用Spring boot 的profile功能实现多环境配置自动切换  # Spring Boot使用profile如何配置不同环境的配置文件  # 详解springboot + profile(不同环境读取不同配置)  # 详解Spring Boot Profiles 配置和使用  # spring Profile如何为不同环境提供不同的配置支持  # 配置文件  # 可以通过  # 让我  # 会有  # 是这样  # 又有  # 右键  # 希望能  # 带来了  # 此类  # 谢谢大家  # 也给  # 好办法  # 就可以  # 有一个  # 单元测试  # 上传  # 文档  # 配置管理  # 只要在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Docker环境搭建教程_Laravel Sail使用指南  如何确认建站备案号应放置的具体位置?  昵图网官方站入口 昵图网素材图库官网入口  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  HTML 中动态设置元素 name 属性的正确语法详解  JavaScript常见的五种数组去重的方式  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  网易LOFTER官网链接 老福特网页版登录地址  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  C语言设计一个闪闪的圣诞树  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  详解Huffman编码算法之Java实现  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何正确下载安装西数主机建站助手?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Java垃圾回收器的方法和原理总结  三星、SK海力士获美批准:可向中国出口芯片制造设备  米侠浏览器网页背景异常怎么办 米侠显示修复  Linux网络带宽限制_tc配置实践解析【教程】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  ,怎么在广州志愿者网站注册?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  高端建站如何打造兼具美学与转化的品牌官网?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel如何处理CORS跨域请求?(配置示例)  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  微信小程序 wx.uploadFile无法上传解决办法  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Python高阶函数应用_函数作为参数说明【指导】  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  IOS倒计时设置UIButton标题title的抖动问题  如何快速搭建FTP站点实现文件共享?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何在橙子建站上传落地页?操作指南详解  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  北京网站制作公司哪家好一点,北京租房网站有哪些?  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程