Tomcat连接池的配置方式很多,在网上搜索各种版本不一,这里介绍一下我的个人配置经验,希望对你有用。
我这里以tomcat6 和 tomcat 7 为例(低版本可能有些许差别),使用oracle10g数据库(其他库类似),在spring中引用。
配置之前,先将oracle10g的数据库驱动包ojdbc14.jar放到tomcat目录下的lib文件夹中
Tomcat连接池配置的方式很多,这里介绍两种。
在tomcat目录下的conf文件夹中,修改context.xml文件,在context标签之间添加Resource标签如下
<Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> <Resource name="jdbc/oracleTest" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ip:1521:oral" username="zhangsan" password="sdfsdf" maxActive="100" maxIdle="30" maxWait="10000"/> </Context>
如果你在conf文件夹中的server.xml文件里像如下这样配置了全局context:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="E:\projects\test\WebRoot" path="" debug="0" crossContext="true" > </Context> </Host>
也可以将2.1中的Resource标签添加到这里的context下,变成下边这样。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="E:\projects\test\WebRoot" path="" debug="0" crossContext="true" > <Resource name="jdbc/oracleTest " auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ip:1521:oral" username="zhangsan" password="sdfsdf" maxActive="100" maxIdle="30" maxWait="10000" /> </Context> </Host>
引用方式也很简单,只需要将spring配置文件中关于数据源配置的标签替换成下边这样既可
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/xxx/xxxxxx</value> </property> </bean>
其中/xxx/xxxxx 部分与我们在上边定义的Resource名字对应即可