`

jedis-2.4.1 中的JedisPoolConfig没有MaxActive属性

阅读更多

      maven中拉下了最新的jedis jar包,2.4.1,使用spring提供的jedis template类感觉操作挺不爽的,至于模板其它优点暂不想去升级,准备直接使用jedis api操作

     下面是网上随处可见的一段代码。

 

JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxActive(Integer.valueOf(bundle
				.getString("redis.pool.maxActive")));
		config.setMaxIdle(Integer.valueOf(bundle
				.getString("redis.pool.maxIdle")));
		config.setMaxWait(Long.valueOf(bundle.getString("redis.pool.maxWait")));
		config.setTestOnBorrow(Boolean.valueOf(bundle
				.getString("redis.pool.testOnBorrow")));
		config.setTestOnReturn(Boolean.valueOf(bundle
				.getString("redis.pool.testOnReturn")));
		pool = new JedisPool(config, bundle.getString("redis.ip1"),
				Integer.valueOf(bundle.getString("redis.port")));

    构造连接池配置文件,但是让我十分蛋疼的就是,setMaxActive提示没这个方法,查看源码JedisPoolConfig继承至GenericObjectPoolConfig,其父类中确实也没有MaxActive这个属性,WHY?难道网上疯传的都是以讹传讹?暂时不去想这个可能性不大的问题,看了下GenericObjectPoolConfig类所在的jar包,org.apache.commons.pool2.impl.GenericObjectPoolConfig,apache提供的xx池,当然平时用的多的是另一个包,我首先就猜测是不是有同名的类文件,Ctrl+T,果然有,继续看,还真存在MaxActive属性,WHY?难道是JedisPoolConfig继承错了,果断自己重载此类,然而JedisPool构造函数有出错,提示必须是org.apache.commons.pool2.impl.GenericObjectPoolConfig的实例,抓狂了叫喊,各种纠结,最后没辙,只能从开源仓库中下载一个个不同版本的jar,找到jedis-2.2.0时,眼前一亮,(#‵′)靠,JedisPoolConfig继承的就是我们熟悉的org.apache.commons.pool.impl.GenericObjectPool.Config。

     jedis的大神们做扩展时,能不能考虑下代码的兼容性。。。。

分享到:
评论
10 楼 di1984HIT 2017-02-01  
果真的,学习了~~s
9 楼 wudalang_gd 2016-06-14  
网上各种乱七八糟的jar真的是害苦人,我就遇到同样的问题
8 楼 空谷悠悠 2014-09-24  
wjboy49 写道
pool2中修改如下:
maxActive  ==>  maxTotal
maxWait ==> maxWaitMillis

具体见:
http://mail-archives.apache.org/mod_mbox/tomcat-dev/201403.mbox/<20140305154712.6B9E123889E2@eris.apache.org>


谢谢 2014年3月5号,最近才做的说明,绝大多数人很难找到吧
7 楼 wjboy49 2014-09-23  
pool2中修改如下:
maxActive  ==>  maxTotal
maxWait ==> maxWaitMillis

具体见:
http://mail-archives.apache.org/mod_mbox/tomcat-dev/201403.mbox/<20140305154712.6B9E123889E2@eris.apache.org>
6 楼 hujinhu 2014-07-24  
mark.....
5 楼 Mirale 2014-05-20  
空谷悠悠 写道
zhangthe9 写道
空谷悠悠 写道
zhangthe9 写道
还是没弄懂  commons-pool2 的maxactive 到底还有没有?怎么设置?

使用jedis-2.2.0,高版本的继承了不同jar的GenericObjectPoolConfig


好像是改名了
maxTotal
maxWaitMillis

做扩展,竟然没有考虑向下兼容的基本原则,这个实在是。。。

我刚用到Jedis,版本是2.4.2,用JedisPoolConfig来初始化连接池,纠结了好久没有setMaxActive等方法,原来是这样,受教了。
4 楼 空谷悠悠 2014-03-13  
zhangthe9 写道
空谷悠悠 写道
zhangthe9 写道
还是没弄懂  commons-pool2 的maxactive 到底还有没有?怎么设置?

使用jedis-2.2.0,高版本的继承了不同jar的GenericObjectPoolConfig


好像是改名了
maxTotal
maxWaitMillis

做扩展,竟然没有考虑向下兼容的基本原则,这个实在是。。。
3 楼 zhangthe9 2014-03-13  
空谷悠悠 写道
zhangthe9 写道
还是没弄懂  commons-pool2 的maxactive 到底还有没有?怎么设置?

使用jedis-2.2.0,高版本的继承了不同jar的GenericObjectPoolConfig


好像是改名了
maxTotal
maxWaitMillis
2 楼 空谷悠悠 2014-03-13  
zhangthe9 写道
还是没弄懂  commons-pool2 的maxactive 到底还有没有?怎么设置?

使用jedis-2.2.0,高版本的继承了不同jar的GenericObjectPoolConfig
1 楼 zhangthe9 2014-03-13  
还是没弄懂  commons-pool2 的maxactive 到底还有没有?怎么设置?

相关推荐

Global site tag (gtag.js) - Google Analytics