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

Spring3自定义环境配置 beans profile=

Spring 3.1的功能,以后就不用为了区分Test, Dev, Production环境,搞几个只有细微区别的application.xml, application-test.xml及引用它们的web.xml了。

首先,将applicationContext.xml中的namespace从3.0升级到3.1.xsd, 然后就可以在文件末尾加入不同环境的定义,比如不同的dataSource

Xml代码 
<beans profile="test">
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>
</jdbc:embedded-database>
</beans>
 
<beans profile="production">
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/datasource"/>
</beans>

2.在web.xml里,你需要定义使用的profile,最聪明的做法是定义成context-param,注意这里定义的是default值,在非生产环境,可以用系统变量"spring.profiles.active"进行覆盖。

Xml代码 
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>

 如果需要在eclipse设置development环境,在

Run As --》Run Configurations... --》Environment 设置变量:
spring.profiles.active = development

3.在其他地方进行覆盖

3.1 在development和functional test启动Jetty前设置系统变量

Java代码 
System.setProperty("spring.profiles.active", "development");
server.start()
 
3.2 在用到ApplicationContext的单元测试用例中,用 @ActiveProfiles定义

Java代码 
@ContextConfiguration(locations = { "/applicationContext.xml" })
@ActiveProfiles("test")
public class AccountDaoTest extends SpringTxTestCase {
}
演示了production,development,test,functional三个环境, 大家可以根据实际情况组合自己的环境管理。另外可以与Spring的properties文件加载时可顺位覆盖的特性(放一些不在版本管理中的xx.local.properties文件),更好的支持本地开发环境。

相关文章:

  • (转)JAVA中的堆栈
  • unity动画状态机的学习
  • 1.5 Android 入门实例 后台循环发短信
  • iOS 本地化
  • SublimeText2 快捷键一览表
  • 如何删除ubuntu旧内核
  • 不同的领域,同样的声音(转)
  • 回档|数字三角形3,4
  • Convirt2.5的简单使用
  • Gamma曲线
  • 怎样编写高质量的 Java 代码
  • 【贪心】POJ 1065
  • 使用OpenSSL自签发服务器https证书
  • 360手机卫士界面布局学习过程
  • linux正则表达式grep与egrep
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • ES6指北【2】—— 箭头函数
  • 【Leetcode】104. 二叉树的最大深度
  • java8 Stream Pipelines 浅析
  • STAR法则
  • ubuntu 下nginx安装 并支持https协议
  • 基于组件的设计工作流与界面抽象
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 日剧·日综资源集合(建议收藏)
  • 如何使用 JavaScript 解析 URL
  • 双管齐下,VMware的容器新战略
  • 我有几个粽子,和一个故事
  • 小程序01:wepy框架整合iview webapp UI
  • 新手搭建网站的主要流程
  • 用mpvue开发微信小程序
  • #pragam once 和 #ifndef 预编译头
  • (¥1011)-(一千零一拾一元整)输出
  • (2020)Java后端开发----(面试题和笔试题)
  • (39)STM32——FLASH闪存
  • (4)(4.6) Triducer
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (一)appium-desktop定位元素原理
  • (转)fock函数详解
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • . Flume面试题
  • .net6 webapi log4net完整配置使用流程
  • .NET多线程执行函数
  • .net连接oracle数据库
  • .NET委托:一个关于C#的睡前故事
  • @Builder用法
  • [ 数据结构 - C++]红黑树RBTree
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [2018-01-08] Python强化周的第一天
  • [C++][基础]1_变量、常量和基本类型
  • [CF226E]Noble Knight's Path
  • [CTF]php is_numeric绕过