使用common-pool, 这里使用GenericKeyedObjectPool
GenericKeyedObjectPool类在org.apache.commons.pool.impl包中,构造函数如下:
public GenericObjectPool(org.apache.commons.pool.KeyedPoolableObjectFactory ,
int ,byte ,long , boolean ,boolean )
由构造函数的定义可以看出,要想使用GenericKeyedObjectPool,必须要实现KeyedPoolableObjectFactory接口。然后,利用GenericKeyedObjectPool的方法获得Pool中的实例。
1. 实现KeyedPoolableObjectFactory接口
实现KeyedPoolableObjectFactory接口,需实现以下方法。其中makeObject在创建实例时调用,通过自定义代码生成并返回需求的实例,注意要以一个形参为key创建;
activateObject方法在从Pool中拿出一个实例的同时调用,passivateObject方法在实例返还给Pool时调用。要实现的方法比PoolableObjectFactory要实现的方法都多
了一个参数key。
public class MyKeyedPoolableObjectFactory implements KeyedPoolableObjectFactory {
//创建对象实例。同时可以分配这个对象适用的资源。
public Object makeObject(Object key) throws Exception {
Connection con = getConnection(key);
renturn con;
}
// 销毁对象,实际上提供了释放对象占用资源的接口。
public void destroyObject(Object key, Object obj) throws Exception {
System.out.println("destory Object");
}
//查询对象有效性,这个方法一般在 activateObject 方法执行后调用
public boolean validateObject(Object key, Object obj) {
return true;
}
// 激活一个对象。
public void activateObject(Object key, Object obj) throws Exception {
System.out.println("active object");
}
//挂起一个对象
public void passivateObject(Object key, Object obj) throws Exception {
System.out.println("return object");
}
}
2.使用GenericKeyedObjectPool
实现KeyedPoolableObjectFactory接口后,可以直接使用GenericKeyedObjectPool构造函数获得其实例,代码如下:
org.apache.commons.pool.KeyedPoolableObjectFactory factory = new MyKeyedPoolableObjectFactory();
GenericKeyedObjectPool pool= new GenericKeyedObjectPool(factory, 100, GenericObjectPool.WHEN_EXHAUSTED_BLOCK, 100, true, true);
其中,第一个100为最大激活数,第二参数是最大的等待时间。
2.1.GenericKeyedObjectPool参数设置
GenericKeyedObjectPool参数设置与GenericObjectPool类似。
2.2.Pool中实例的操作
Pool中实例的操作,主要包括实例的获取及实例的返还。使用完实例之后,需及时返还,否则实例还是处理激活状态,不能为被后面的申请重复利用。带key的Pool的操作方法,也相应的都加了参数key。
A).实例的获取使用pool.borrowObject(Object key)方法
B).实例返还使用pool.returnObject(Object key, Object con)方法,其中con为pool中获取的实例。
分享到:
相关推荐
总的来说,Redis3.2+jedis2.8.jar的组合是Java开发者常用的Redis操作工具,配合Common-Pool2.jar管理连接池,可以高效、稳定地在Java应用中使用Redis。通过阅读Common-Pool2-source,开发者可以进一步优化连接池的...
赠送jar包:commons-pool2-2.0.jar; 赠送原API文档:commons-pool2-2.0-javadoc.jar; 赠送源代码:commons-pool2-2.0-sources.jar; 赠送Maven依赖信息文件:commons-pool2-2.0.pom; 包含翻译后的API文档:...
在压缩包中包含的`使用说明.txt`可能是关于如何配置和使用`common-pool2`以及Jedis连接池的详细步骤和注意事项。而`commons-pool2-2.4.2`则是一个具体的版本文件,这个版本修复了一些已知的问题,并提供了一些新特性...
需要使用Redis连接池的话,还需commons-pool包,提供了强大的功能,包含最新的jar包
DBCP(DataBase Connection Pool)是 apache common上的一个 java 连接池项目,也是 tomcat 使用的连接池组件,依赖 于Jakarta commons-pool 对象池机制,DBCP可以直接的在应用程序中使用。 使用DBCP会用到commons-...
赠送jar包:commons-pool2-2.5.0.jar; 赠送原API文档:commons-pool2-2.5.0-javadoc.jar; 赠送源代码:commons-pool2-2.5.0-sources.jar; 包含翻译后的API文档:commons-pool2-2.5.0-javadoc-API文档-中文...
commons-dbcp-1.4 jar java连接池. .commons-dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:
Apache Commons Pool 是一个广泛使用的开源组件,主要用于提供对象池化的实现。在Java世界里,对象池化是一种优化资源管理的重要技术,通过复用已创建的对象,避免频繁的创建和销毁过程,从而提升系统性能。最新版本...
标题中的“Jedis-Common-Pool”指的是Jedis,一个流行的Java客户端库,用于与Redis内存数据存储系统交互,以及Apache Commons Pool 2,这是一个对象池实现,Jedis使用它来管理Redis连接的生命周期,提高性能和资源...
commons-pool2-2.3.jar commons-pool2.jar是一个十分常用的jar文件,commons-pool2.jar文件适用于java开发中的与连接池进行连接部分使用,如果您缺少这个jar文件马上下载commons-pool2.jar吧
common-pool的eclipse源码+例子,可以直接导入到eclipse中运行,例子的代码放在src/main/java mh.test中,注意eclipse的jre版本不要用1.8,那样会出现duplicate method的错误!
标题中的“jedis”和“common-pool”指的是在Java开发中常用的两个库,它们分别是Jedis和Apache Commons Pool。Jedis是专为处理Redis数据存储服务而设计的一个Java客户端,而Apache Commons Pool则是一个通用的对象...
go-commons-pool, 用于golang的通用对象池 共享池 go公共池是用于 Golang的通用对象池,直接从 Apache公共池重写。特性支持自定义 PooledObjectFactory 。Rich pool配置选项,可以精确控制池对象生命周期。 请参见 ...
使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...
在描述中提到了两个具体的版本号:“commons-dbcp-1.2.2.jar”和“commons-pool-1.3.jar”。这两个版本是较旧的,可能不包含最新的性能优化和安全修复。通常建议使用较新的稳定版本以获得更好的兼容性和安全性。不过...
这两个JAR文件——commons-dbcp-1.4.jar和commons-pool-1.4.jar,是Apache软件基金会提供的开源组件,用于优化数据库资源的管理和复用。 **Apache Commons DBCP** Apache Commons DBCP 是一个基于Apache Commons ...
标题中的"commons-dbcp-1.4&&commons-pool-1.3.jar"指的是Apache Commons的两个重要组件:DBCP(Database Connection Pool)1.4版本和Pool 1.3版本。这两个组件在Java Web开发中扮演着关键角色,尤其在数据库连接...
jedis 2.9jar包括源代码及common-pool 下面是官方地址,不用积分: https://github.com/xetorthio/jedis http://mvnrepository.com/artifact/redis.clients/jedis/2.9.0
首先,`commons-pool-1.5.6`是一个Apache开源项目,提供了对象池化的服务,可以用于管理数据库连接池或其他资源池。在Redis的场景下,它可能被用来管理Redis连接,通过对象池化技术提高连接复用率,降低系统开销。...
《Jedis 2.9与Common Pool:Redis客户端与连接池详解》 Redis,作为一款高性能的Key-Value存储系统,被广泛应用于缓存、消息队列等多种场景。在Java开发中,Jedis是一个非常流行的Redis客户端库,而Jedis 2.9版本则...