java 获取 jndi_[Java教程]Spring通过JNDI获取在Tomcat容器中配置的C3P0数据源

[Java教程]Spring通过JNDI获取在Tomcat容器中配置的C3P0数据源

0 2014-06-12 16:00:46

开始直接使用Spring通过JNDI获取在Tomcat容器中配置的数据源,Tomcat默认的应该是DBCP连接池,没问题,一切OK,由于Hibernate和Spring都推荐使用C3P0连接池,所以就尝试配置一下,没想到整了半下午,才搞定配置,惭愧!网上的内容眼花缭乱,鱼龙混杂,不如自己靠谱!直接上代码,后面附出现的问题!

配置两个地方:

1.Tomcat\conf下的context.

2.Spring的配置文件

提示:

1.如果要优化连接池的性能,要对参数进行设置,具体的要看官网!官网最靠谱!官网是王道!

C3P0:http://www.mchange.com/projects/c3p0/

DBCP:http://commons.apache.org/proper/commons-dbcp/

2.C3P0的jar包要放在WEB-INF\lib中,也要放到Tomcat\lib包中

3.通过JNDI配置可以使项目与不同数据库的配置达到解耦的目的

context.1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:orcl"

testOnBorrow="true"

testOnReturn="true"

testWhileIdle="true"

validationQuery="SELECT COUNT(*) FROM DUAL"

maxIdle="30"

maxWait="5000"

maxActive="100"

initialSize="10"/>

user="scott" password="tiger" driverClass="oracle.jdbc.driver.OracleDriver"

jdbcUrl="jdbc:oracle:thin:@localhost:1521:orcl"

maxPoolSize="30"

minPoolSize="1"

initialPoolSize="5"

acquireIncrement="2"

idleConnectionTestPeriod="60"

maxIdleTime="60"

factory="org.apache.naming.factory.BeanFactory"

type="com.mchange.v2.c3p0.ComboPooledDataSource"/>

applicationContext.1

2

3

4

5

6

7

8

9

10

11

12

13

class="org.springframework.jndi.JndiObjectFactoryBean">

java:comp/env/jdbc/DB

出现的问题:1.javax.naming.NamingException: No set method found for property: username

解决方法:

context.

2.org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.mchange.v2.c3p0.mbean.C3P0PooledDataSource' to

required type 'javax.sql.DataSource' for property 'dataSource'

解决方法:

context.

其它问题就记不太清了!能用就好,有时间再研究优化配置及内部实现原理!

另:发现网上好多贴子说,要配置三处,还有一处是web.

本文网址:http://www.shaoqun.com/a/93835.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

Spring

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值