如何替换Application context定义文件中自定义的property

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如何替换Application context定义文件中自定义的property

问题描述:

在Application context定义文件(如xxx-servlet.xml、applicationContext.xml)中,有时需要一些自定义的property,如datasource的定义

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>

<property name="url"><value>${jdbc.url}</value></property>

<property name="username"><value>${jdbc.username}</value></property>

<property name="password"><value>${jdbc.password}</value></property>

</bean>

或者可能有时还需要Application的根路径或系统变量。

解决方案:

使用org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer,

这个类的设计意图就是为了解决这个问题。它首先使用用户自定义的变量,然后使用系统变量,然后是这个配置文件的变量。

具体用法:

1. 在配置文件中声明这个类

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

2. 设定参数(可以为空)

l location:指定一个properties文件的路径

<property name="location"><value>/WEB-INF/jdbc.properties</value></property>

l locations:指定一组properties文件的路径

<property name=" locations ">

<props>

<prop key="jdbc">/WEB-INF/jdbc.properties </prop>

<prop key="conn">/WEB-INF/conn.properties </prop>

</props>

</property>

如果需要Application跟路径,则需要定义Application的根路径,具体步骤如下:

1. 在web.xml中,添加

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>petclinic.root</param-value>

</context-param>

设置跟路径名称(默认为webapp.root)

2. 然后声明WebAppRootListener or Log4jConfigListener

<listener>

<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

或ContextLoaderServlet

<servlet>

<servlet-name>context</servlet-name>

<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

如果是上边的声明,则Application的根路径变量的写法是${ petclinic.root }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航