在用数据库做数据源认证时,Apache Shiro的官方例子是用com.mysql.jdbc.jdbc2.optional.MysqlDataSource类连接数据库。
此为MySQL自带的数据源。如果想使用proxool来替换此数据源也非常简单。(proxool支持自动重连接)
proxool的配置方法和一般的WEB应用类似,先在web.xml定义好proxool连接池,指定proxool.xml文件路径。
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在proxool.xml中定义配置信息。
<proxool>
<alias>Pool_dbname</alias>
<driver-url>jdbc:mysql://localhost:3306/dbname</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="yourname"/>
<property name="password" value="yourpass"/>
</driver-properties>
<house-keeping-sleep-time>60000</house-keeping-sleep-time>
<maximum-connection-count>20</maximum-connection-count>
<minimum-connection-count>2</minimum-connection-count>
<prototype-count>0</prototype-count>
<simultaneous-build-throttle>20</simultaneous-build-throttle>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
<statistics>15s,10m,1d</statistics>
<statistics-log-level>INFO</statistics-log-level>
</proxool>
在Shiro.ini中配置数据源
[main]
ds = org.logicalcobwebs.proxool.ProxoolDataSource
ds.alias = Pool_dbname
注意:org.logicalcobwebs.proxool.ProxoolDataSource类只在Proxool 0.9版本才有,因此使用时最好下载最新版本proxool-0.9.1.zip