Spring通过JNDI从Tomcat查询Datasource

首先,介绍下运行的软件环境:

  • tomcat 7.0
  • oracle 11.2
  • spring 3.0
  • c3p0 0.9.1

下面,我们开始配置。

1.准备好tomcat依赖的jar包
把下列的jar包拷贝到TOMCAT_HOME/lib/目录下(其他依赖可以放在web应用的lib目录下):

  • ojdbc6-11.2.0.jar: oracle jdbc驱动
  • c3p0-0.9.1.jar: c3p0连接池

2.在tomcat上下文里配置c3p0连接池
可以参考tomcat jndi datasource examples文档,和文档上不同的地方是这里使用了c3p0连接池。
在TOMCAT_HOME/conf/context.xml里添加下面的配置:

<Resource auth="Container"
          description="DB Connection"
          driverClass="oracle.jdbc.driver.OracleDriver"
          maxPoolSize="50"
          minPoolSize="3"
          acquireIncrement="3"
          name="jdbc/sample"
          user="user"
          password="password"
          factory="org.apache.naming.factory.BeanFactory"
          type="com.mchange.v2.c3p0.ComboPooledDataSource"
          jdbcUrl="jdbc:oracle:thin:@hostname:1521:sid" />

配置到这里,就可以使用JNDI查询到数据库连接池了。

3.在spring里注入数据源
使用JNDI查询数据源tomcat_DataSource:

<bean id="tomcat_DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
	<property name="jndiName" value="java:comp/env/jdbc/sample" />
</bean>

现在,可以配置web应用使用tomcat_DataSource数据源了。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.