- 浏览: 1526289 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (225)
- JAVA (27)
- Spring (49)
- Linux (51)
- JavaScript (8)
- Scrum (23)
- IDE (2)
- JSON (2)
- Solr (0)
- Webharvest (0)
- Hibernate (8)
- 杂谈 (3)
- Windows 7 (4)
- 持续集成 (23)
- tomcat (3)
- Android (1)
- SpringSecurity (11)
- Maven (9)
- jotm (3)
- C3P0 (1)
- Active Directory (2)
- cas (1)
- JQuery (2)
- ajax (1)
- plsql (2)
- nginx (4)
- apache (1)
- thrift (7)
- python (3)
- oracle (4)
- php (2)
- redis (1)
- fedora (1)
- windows7 (0)
- SVN (1)
- NFS (1)
- SAMBA (1)
- Atomikos (1)
- apache-poi (1)
- mysql (2)
- vncserver (1)
- mac (2)
- firefox (1)
- JIRA (1)
- p6spy (1)
- git (1)
- github (1)
- gitlab (1)
- gogs (1)
- Druid (1)
- MyBatis (1)
- docker (8)
- zabbix (1)
最新评论
-
lialatd:
您好,我用您的方法通过java api往jira系统中添加is ...
JIRA REST API ---- JAVA -
sprcen945:
可以了,是因为没加intercept-url 的拦截, 尼玛, ...
SpringSecurity3.X--Cas client 配置 -
sprcen945:
请问为什么我配了security.xml后切入点不起作用(之前 ...
SpringSecurity3.X--Cas client 配置 -
linxingyul:
根据楼主的代码 继承了WebMvcConfigurationS ...
SpringMVC4零配置--Web上下文配置【MvcConfig】 -
java_老头:
MvcConfig.java的FilterType.ANNOT ...
SpringMVC4零配置--Web上下文配置【MvcConfig】
我们都曾在项目中使用过.properties,比如多语言支持,参数配置等等,一般都是name=value的形式,然后系统的其它地方对其引用。
原始方式
举个例子,spring配置文件里配置一个数据源,这里只是举例,实际使用时推荐使用JNDI:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="initialSize" value="${jdbc.initialSize}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxIdle" value="${jdbc.maxIdle}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
<property name="maxWait" value="${jdbc.maxWait}"/>
</bean>
<beanid="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
如果使用spring命名空间,可以使用如下方式:
<context:property-placeholder location="classpath:jdbc.properties" />
然后在jdbc.properties里这样配置:
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.0.18:1521:dbserver
jdbc.username=testuser
jdbc.password=123456
jdbc.initialSize=0
jdbc.maxActive=8
jdbc.maxIdle=8
jdbc.maxWait=0
jdbc.minIdle=-1
这样,在spring在初始化dataSource时会读取jdbc.properties的内容进行相应的替换,部署程序或更换环境时修改这个properties就可以了。
改进方法
不过有些部署人员可能更喜欢去修改web.xml,比如部署时只需要修改数据库的SID,我们可以将这个参数像这样配置在web.xml中:
<context-param>
<param-name>dbserver.sid</param-name>
<param-value>dbserver</param-value>
</context-param>
然后在加入一个监听器:
<listener>
<listener-class>com.local.DBServerSIDListener</listener-class>
</listener>
监听器代码如下:
package com.local;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class DBServerSIDListener implements ServletContextListener {
public static final String DB_SERVER_SID= "dbserver.sid";
public void contextDestroyed(ServletContextEvent event) {
System.getProperties().remove(DB_SERVER_SID);
}
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
String sid= context.getInitParameter(DB_SERVER_SID);
System.setProperty(DB_SERVER_SID, sid);
}
}
其实就是使用System.setProperty(DB_SERVER_SID, sid);在启动时将数据库的SID放到系统属性中,
此时修改jdbc.properties,如下:
jdbc.sid=${dbserver.sid}
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.0.18:1521:${jdbc.sid}
jdbc.username=testuser
jdbc.password=123456
jdbc.initialSize=0
jdbc.maxActive=8
jdbc.maxIdle=8
jdbc.maxWait=0
jdbc.minIdle=-1
这样就完成了配置。
为什么将参数放入系统属性spring也可以解释呢,原因就是,当spring读取配置时,如果在配置文件没有查找到,会去读取系统属性的。
其实这种方式可以应用到很多地方,大家可以举一反三。
需要注意的地方
不过使用系统属性时需要注意,系统属性是驻留在jvm里的,也就是说所有使用同一个jre(或者jdk)的东东都能够取到这个属性,如果两个应用中设置了相同属性key的属性,是会互相干扰,所以设置属性时一定要注意属性名不能相同。
如果大家不清楚jvm里都有哪些属性,可以用下面的方法查看:
for (Iterator i = System.getProperties().keySet().iterator(); i.hasNext();) {
String key = (String) i.next();
String val = System.getProperty(key);
System.out.println(String.format("%s=%s", key, val)+"<br>");
}
发表评论
-
JIRA REST API ---- JAVA
2015-09-24 15:51 13268最近在搞自动化监控 ... -
Thrift--JSClient
2013-09-26 14:45 5914thrift提供了基于jquery--ajax的客户端调用 ... -
Thrift--Spring集成ThriftServlet
2013-09-25 11:42 11080Thrift除了可以通过TCP协议访问,还可以通过HTTP ... -
Thrift转SpringHttpInvoker
2013-09-24 13:26 1728关于在spring中集成Thrift请参看:http://h ... -
Thrift--JavaServer&PythonClient遇到的问题
2013-09-23 10:16 1404thrift在java中的应用参考:http://hanqu ... -
Spring集成Thrift--Server AND Client
2013-09-04 20:13 13714Thrift网上有N多教程, ... -
Windows Server 2008 Active Directory 安装及使用笔记
2013-03-22 18:49 26361.安装AD http://www.docin.com/ ... -
C3P0配置实战
2012-09-04 18:34 51850C3P0: 一个开源的JDBC连接池,它实现了数据源和JN ... -
使用Spring3.1 Cache注解+EHCache遇到的问题
2011-10-20 17:48 10332关于Spring3.1 Cache注解的介绍请参看http:/ ... -
JAVA压缩与解压缩--zip
2011-03-03 16:52 3377通过java打zip包或者解压 ... -
java调用Shell脚本
2009-07-10 13:13 2264原文地址:http://hi.baidu.com/qiu115 ... -
JDK5 Annotation(注释)的用法
2009-07-10 13:27 1779原文地址:http://hi.baidu.com/gaoyao ... -
JDK 1.5中的ENUM用法
2009-07-10 13:30 1280原文地址:http://www.cnblogs.com/jac ... -
java反射介绍
2009-07-10 14:31 1079一。课程:检查类 1.获得Class对象 得到 ... -
jdk1.5泛型介绍
2009-07-11 09:42 1080原文地址:http://www.matrix.org.cn/r ... -
中文与acsii码相互转换方法
2009-07-13 17:59 1405在开发时,经常会用到 ... -
String与InputStream相互转换
2009-07-20 18:48 17021.String to InputStream String ... -
java.util.Date 与java.sql.Date相互转换
2009-07-21 10:57 16721.java.util.Date to java.sql.Da ... -
Java中执行Shell(.sh)和windows批量处理(.bat)
2009-07-21 21:39 1733原文之地:http://blog.csdn.net/Nicol ... -
java验证日期格式
2009-07-24 21:02 1707public static boolean checkDate ...
相关推荐
Windows Resizer 是一个用来修改窗口属性的小程序。程序小巧实用,包含英文程序,方便在EWin中运行,完全绿色软件,源代码公开且免费,快来下载体验吧。 软件功能: 查找控件的句柄; 设置窗口大小; 更改窗口的标题...
3.自定义推荐属性:推荐属性为内容发布时可选择的特殊属性标识,如“热荐”、“头条”等等,通过系统推荐属性管理自由添加需要的属性。 4.分组式管理员权限:后台权限设置以“管理员分组”为单位,添加管理员分组时...
Bulk File Changer是一个小巧的程序,允许您从多个文件夹中创建文件列表,然后对它们执行一些操作——修改它们的创建/修改/访问时间,更改它们的文件属性(只读、隐藏、系统),以这些文件为参数运行可执行文件,并...
一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。 用户设置:管理员分为超级管理员或普通管理员(共4级),超级管理员具有网站最高权限,普通管理员部分功能被限制。 短信号码...
8、附加属性(自定义属性) 9、系统日志(异常记录) 10、数据库备份/还原 11、资源管理,(动态数据库) 12、个人信息(基本信息,附加信息,用户角色,拥有权限) 13、首页快捷 14、数据回收站(业务功能删除过...
确认更改:在数量项目文本框中可以更改数目,该事件是用以更新购物篮中最新网上购物系统 的商品数量; ◇ 最新网上购物系统 继续购物:该事件是关闭窗口; ◇&最新网上购物系统 nbsp; ...
86CMS企业网站系统为智能ASP网站管理程序,适合中小企业自建网站、二次开发使用。本程序具有体积小巧、程序文件结构严谨、界面清爽...一键更改网站状态、修改网站标题、设置网站基本资料和网站系统属性等。管 理 员:管
内容索引:VB源码,系统相关,窗体,属性 VB版窗体属性修改专家,2004开源版本,是一款方便、小巧、实用的窗体调试工具,界面模仿了水晶情缘的窗体属性修改专家,主要是实现了主窗体的选项卡功能,这个程序能自动获得...
* 提供商品的分类、季节、颜色、尺码、品牌、单位等商品属性管理 * 快速的信息模糊定位,方便查找 3. 商品销售管理 * 支持单个商品打折和所有销售商品统一打折两种,统一打折的折扣平摊到每个商品身上 * 提供已销售...
属性 : A--- 数字签名:否 语言 : 中文(简体,中国) 文件版本 : 0.0.0001 beta1 说明 : 通过WMI获取Windows用户帐户信息 版权 : PurpleEndurer 大小 : 5120 字节 5.0 KB MD5 : 2a9443c7db231df9235c0d09e8406a77 SHA1...
一键更改网站状态、修改网站标题、设置网站基本资料和网站系统属性等。管 理 员:管理员分为超级管理员或普通管理员,超级管理员具有网站最高权限,普通管理员部分功能被限制。模板显示设置:可设置各栏目显示条数、...
一键更改网站状态、修改网站标题、设置网站基本资料和网站系统属性等。 管 理 员:管理员分为超级管理员或普通管理员,超级管理员具有网站最高权限,普通管理员部分功能被限制。 模板显示设置:可设置各栏目显示条数...
Sorry,我知道是要免费提供的,可是我的CSDN老是不够用 此版本能够看到记录,某用户的记录,并删除记录。 一. WeLive介绍: ------------------ WeLive在线客服系统是一个程序小巧, 安装使用简单的网上在线客服...
一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。栏目导航:对网站导航菜单以及菜单排序等进行管理。安全设置:SQL注入管理,后台可设置SQL防注入参数等,SQL注入记录,可封锁...
可添加自主商品,设置网站价格、市场价格、促销价格、促销时间等各种属性,为方便进行SEO优化,亦可设置每个商品展示页标题、关键字、描述信息。 二、文章管理:可设置文章分类、文章列表显示模板、文章内容显示...
一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。 管 理 员:管理员分为超级管理员或普通管理员,超级管理员具有网站最高权限,普通管理员部分功能被限制。 模板显示设置:可设置...
巧用活动,提升会员重复购买率 系统支持返券促销、礼品兑换、礼品卡、礼品册、秒杀、限时抢购、满额立减、团购、免运费、赠品、换购、捆绑销售、活动专场等几十种促销活动手段,给客户更多的实惠,增强网站的粘度。...
汉化者主页:http://www.myand.com内附说明文件:=================================系统要求: PHP , 不需要MySQL功能:简单小巧的下载系统,操作简单,直观,是搞小型下载的不错选择。并且有统计下载点击功能(记录...
用程序和计算机系统的全部配置信息、系统 和应用程序的初始化信息、应用程序和文档 文键的关联关系、硬件设备说明、状态和属 性以及各种状态信息和数据。注册表中存放 着各种参数,直接控制着Windows的启动、硬 件...
一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。 栏目导航:对网站导航菜单以及菜单排序等进行管理。 安全设置:SQL注入管理,后台可设置SQL防注入参数等,SQL注入记录,可...