前一篇文章讲过了如何在Hibernate中配置Proxool以连接oracle 11g,今天这篇来讲针对Spring+Hibernate如何对proxool连接池进行配置。
这次以MySQL为例。
第一步:首先去http://proxool.sourceforge.net/下载proxool.zip文,现在最新版本是proxool-0.9.1,解压缩后从中找到proxool-0.9.1.jar和proxool-cglib.jar,导入到对应的web项目中。如果用的是proxool-0.8.3,那只需导入一个jar包——proxool-0.8.3.jar。
第二步:就是写一个单独的ProxoolConf.xml文件放到WEB-INF文件夹下。这次用的数据库是MySQL.
ProxoolConf.xml的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>ConnectionPool</alias>
<driver-url>jdbc:mysql://localhost:3306/myTest</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="ukpss"/>
<property name="password" value="ukpss"/>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<maximum-active-time>900000</maximum-active-time>
<maximum-connection-lifetime>1200000</maximum-connection-lifetime>
</proxool>
</something-else-entirely>
具体的元素说明请参看我的另一篇文章,Hibernate配置Proxool以连接oracle 11g第三步:加载并初始化proxool.xml文件。
因为它是连接数据库的,其他很多模块都用到数据,所以你必须首先加载它,在web.xml中进行如下配置:
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/ProxoolConf.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
如果你以前加载applicationContext.xml用的是
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
由于listener先于servlet被加载,必须改为
<servlet>
<servlet-name>contextConfigLocation</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>2</load-on-startup>