- 浏览: 1541056 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 13416最近在搞自动化监控 ... -
Thrift--JSClient
2013-09-26 14:45 6014thrift提供了基于jquery--ajax的客户端调用 ... -
Thrift--Spring集成ThriftServlet
2013-09-25 11:42 11151Thrift除了可以通过TCP协议访问,还可以通过HTTP ... -
Thrift转SpringHttpInvoker
2013-09-24 13:26 1794关于在spring中集成Thrift请参看:http://h ... -
Thrift--JavaServer&PythonClient遇到的问题
2013-09-23 10:16 1469thrift在java中的应用参考:http://hanqu ... -
Spring集成Thrift--Server AND Client
2013-09-04 20:13 13787Thrift网上有N多教程, ... -
Windows Server 2008 Active Directory 安装及使用笔记
2013-03-22 18:49 26901.安装AD http://www.docin.com/ ... -
C3P0配置实战
2012-09-04 18:34 51929C3P0: 一个开源的JDBC连接池,它实现了数据源和JN ... -
使用Spring3.1 Cache注解+EHCache遇到的问题
2011-10-20 17:48 10404关于Spring3.1 Cache注解的介绍请参看http:/ ... -
JAVA压缩与解压缩--zip
2011-03-03 16:52 3433通过java打zip包或者解压 ... -
java调用Shell脚本
2009-07-10 13:13 2329原文地址:http://hi.baidu.com/qiu115 ... -
JDK5 Annotation(注释)的用法
2009-07-10 13:27 1824原文地址:http://hi.baidu.com/gaoyao ... -
JDK 1.5中的ENUM用法
2009-07-10 13:30 1338原文地址:http://www.cnblogs.com/jac ... -
java反射介绍
2009-07-10 14:31 1134一。课程:检查类 1.获得Class对象 得到 ... -
jdk1.5泛型介绍
2009-07-11 09:42 1134原文地址:http://www.matrix.org.cn/r ... -
中文与acsii码相互转换方法
2009-07-13 17:59 1470在开发时,经常会用到 ... -
String与InputStream相互转换
2009-07-20 18:48 17571.String to InputStream String ... -
java.util.Date 与java.sql.Date相互转换
2009-07-21 10:57 17331.java.util.Date to java.sql.Da ... -
Java中执行Shell(.sh)和windows批量处理(.bat)
2009-07-21 21:39 1787原文之地:http://blog.csdn.net/Nicol ... -
java验证日期格式
2009-07-24 21:02 1773public static boolean checkDate ...
相关推荐
【如何巧用WinPE修复故障系统】 WinPE(Windows Preinstallation Environment)是一种精简版的Windows操作系统,主要用于系统安装、维护和修复。当您的计算机遇到无法正常启动的问题时,WinPE可以通过其内置的工具...
【VB制作的小巧小闹钟系统详解】 VB(Visual Basic)是微软公司开发的一种面向对象的、事件驱动的编程语言,它以其简单易学、功能强大的特点,深受初学者和专业开发者的喜爱。本篇文章将深入探讨使用VB编写的这款...
_win7 系统下巧用组策略阻止 U 盘启动的方法 在 Win7 系统下,如何巧用组策略阻止 U 盘启动?这篇文章将向您展示如何使用组策略来阻止 U 盘启动,从而提高计算机的安全性。 了解组策略 组策略是 Windows 操作系统...
6. **系统属性**:标记文件为系统文件,通常与操作系统核心组件相关。 在某些情况下,如数据恢复、文件整理或测试环境中,可能需要修改文件属性。例如,为了隐藏敏感文件、恢复错误的文件时间戳,或者在特定场景下...
2. **其他系统功能**:可以通过不同的.cpl文件调用不同的系统设置,例如`sysdm.cpl`用于系统属性,`appwiz.cpl`用于添加/删除程序等。这些调用可以帮助用户快速访问和修改系统设置。 3. **运行快捷方式**:`Shell ...
诺机械是一款专为机械行业设计的软件工具,它在装配件图零件属性的关联检查和自动更正方面具有显著的功能。在二维工程图纸绘制中,通常使用ACAD(AutoCAD)绘制和管理DWG格式的文件,这种格式是二维机械图纸的标准。...
下面将详细介绍如何巧用组策略来禁止Win7系统中的某程序运行。 1. **什么是组策略?** 组策略是Windows操作系统中的一种管理工具,它允许管理员为用户和计算机设置一系列的配置,包括但不限于软件设置、安全设置、...
4. **绿色版特性**:作为绿色版软件,"批量文件属性修改v1.0"不需安装,解压即用,且不写入注册表,不会对系统造成任何影响,适合在各种环境中快速部署。 5. **易用性**:配合详细的使用说明(如压缩包内的"使用...
5. 在“系统属性”对话框的“选择器”选项卡中,你需要设置过滤条件。在“事件来源”下拉菜单中,选择“RemoteAccess”。这是与远程访问服务相关的事件源,通常与拨号上网有关。 6. 接下来,在“类别”下拉菜单中,...
标题提到的"巧用“记事本” 让病毒白白运行"是一种巧妙的策略,可以暂时让病毒失去作用,以便更有效地进行清理。以下是具体的操作步骤和知识点: 首先,我们需要打开命令提示符窗口。这可以通过在“开始”菜单中...
标题中的“U盘的巧用”意味着我们将探讨U盘在日常使用中可能不为人知但非常实用的功能。U盘作为一种便携式存储设备,已经深入到我们的工作和生活中,而不仅仅是简单地用来传输数据。接下来,我们将深入研究如何巧妙...
- **图片框(pictureBox)**:设置背景色为白色,前景色为蓝色,用以绘制CPU使用率的柱状图。 - **定时器(timer)**:设定其Interval属性为100毫秒,并启用它。这确保了每100毫秒更新一次CPU使用率数据。 - **初始化**...
f_stat函数用于获取文件属性,如文件大小、创建时间等。 12. f_mkdir f_mkdir用于创建一个新目录。 13. f_unlink f_unlink用于删除一个文件。 14. f_chmod f_chmod用于修改文件的权限。 15. f_utime f_utime用于...
- **类与对象**:系统基于面向对象的编程思想,通过定义学生和教师类,封装了各自的属性(如姓名、年龄、科目等)和方法(如添加、删除、修改信息)。 - **继承与多态**:可能使用了继承来扩展基本的人员类,如...
### 巧用DOS命令快速清除U盘病毒 在日常工作中,U盘作为一种常见的移动存储设备,被广泛用于数据传输与备份。然而,随着技术的发展,U盘也成为了一些恶意程序如病毒、木马等传播的重要途径之一。其中,Autorun.inf...
### 巧用Delphi制作溅射屏幕 #### 知识点概述 本文旨在详细介绍如何使用Delphi编程语言创建一个启动时显示的“溅射屏幕”(splash screen)。溅射屏幕通常是一个简短显示的界面,用于展示软件启动时的品牌标识或...
4. **隐藏属性**:Windows系统中,文件可能有隐藏属性,这可能会导致你在文件管理器中看不到MP3文件。可以通过文件属性设置取消隐藏,右键点击文件,选择“属性”,取消选中“隐藏”选项。 5. **标签去除**:如果...
本文将重点介绍如何巧用Windows快捷键来启动WPS办公软件。 WPS Office是由金山软件开发的一款集文字处理、电子表格和演示文稿于一体的办公套件,它的三个主要组件——WPS文字、WPS表格和WPS演示,通常以桌面快捷...
1. **巧用Sc命令关闭Server服务** 在Windows系统中,Server服务默认开启,允许其他计算机通过隐藏共享访问本地资源,这可能带来安全隐患。当服务窗口无法正常打开,我们无法直接停止Server服务时,可以借助`sc`命令...
在弹出的“系统属性”窗口中,切换到“筛选器”选项卡。在这里,我们需要设置筛选条件:在“事件来源”一栏中选择“RemoteAccess”,而在“类别”一栏则选择“全部”。 完成筛选设置后,点击“确定”返回“事件查看...