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


相关推荐: 如何在 React 中条件性地遍历数组并渲染元素  网站建设要注意的标准 促进网站用户好感度!  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel怎么在Controller之外的地方验证数据  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  教你用AI将一段旋律扩展成一首完整的曲子  如何快速查询域名建站关键信息?  免费视频制作网站,更新又快又好的免费电影网站?  新三国志曹操传主线渭水交兵攻略  如何快速搭建高效香港服务器网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Python结构化数据采集_字段抽取解析【教程】  西安专业网站制作公司有哪些,陕西省建行官方网站?  利用JavaScript实现拖拽改变元素大小  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  详解Huffman编码算法之Java实现  如何在阿里云域名上完成建站全流程?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  EditPlus中的正则表达式 实战(1)  如何基于云服务器快速搭建网站及云盘系统?  简单实现Android文件上传  如何正确选择百度移动适配建站域名?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  免费网站制作appp,免费制作app哪个平台好?  如何快速搭建高效WAP手机网站吸引移动用户?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何用狗爹虚拟主机快速搭建网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何快速搭建二级域名独立网站?  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何自定义错误页面(404, 500)?(代码示例)  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  如何自定义建站之星网站的导航菜单样式?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Linux安全能力提升路径_长期防护思维说明【指导】  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  如何用美橙互联一键搭建多站合一网站?