`
jelly
  • 浏览: 299256 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

初步研究Apache common pool

阅读更多

因为公司自己做的数据库连接池比较差劲,让我不由很是不爽。但是心里对连接池还有点不了解。所以想找开源的数据库连接池来研究一下。首选当然是dbcp(http://jakarta.apache.org/commons/dbcp/)这个apache的开源的数据库连接池。结果发现dbcp依赖Apache common pool(http://jakarta.apache.org/commons/pool/),那好,就从Apache common pool来开刀。

ObjectPool 是一个简单的接口,定义了pool最常用的两个功能。

java 代码
  1. public interface ObjectPool {   
  2.     Object borrowObject();   
  3.     void returnObject(Object borrowed);   
  4. }   

(借)取一个对象 borrowObject, 归还一个对象 returnObject  象借书还书一样简单。

客户程序基本上就是跟这两个函数打叫道,这样保证了这个pool的易用性。

BaseObjectPool 提供了 ObjectPool 一个的抽象的基础的实现。通常情况下可以继承这个类来进行扩展一个新的ObjectPool 实现,当然这不是必须的。

KeyedObjectPool 提供一个跟 ObjectPool 类似的实现,不过他可以池化多种类型的实例,用户根据 key 来获取特定类型的对象。

java 代码
  1. public interface KeyedObjectPool {   
  2.     Object borrowObject(Object key);   
  3.     void returnObject(Object key, Object borrowed);   
  4. }   

用法示例:

java 代码
  1. Object obj = null;   
  2. Object key = "Key";   
  3.   
  4.  try {   
  5.     obj = pool.borrowObject(key);   
  6.     //...use the object...   
  7.  } catch(Exception e) {   
  8.     //...handle any exceptions...   
  9.  } finally {   
  10.     // make sure the object is returned to the pool   
  11.     if(null != obj) {   
  12.        pool.returnObject(key,obj);   
  13.     }   
  14.  }  
分享到:
评论
1 楼 阿宁sun 2015-02-10  
除了把源码上的注释复制过来,没看到啥东西。。。

相关推荐

    通过Apache common pool开源包实现对象池

    下面通过一个简单的样例来说明如何利用apache common pool来应用对象池。 假定我现在有一个任务,就是对一堆字符串进行格式化,为了加快速度,采用了多线程的方式允许,而格式化则是通过对象StringFormat来实现。 ...

    apache common pool2 实例

    apache common pool2 实例 简单实用,集成spring,配置信息通过配置文件全程配置

    CommonPool2Demo

    apache common pool 对象池框架 demo代码

    Apache common pool2 对象池

    NULL 博文链接:https://m635674608.iteye.com/blog/2089382

    commons-pool2-2.5.0-API文档-中英对照版.zip

    对应Maven信息:groupId:org.apache.commons,artifactId:commons-pool2,version:2.5.0 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    Apache commons-pool2-2.4.2源码学习笔记

    NULL 博文链接:https://aperise.iteye.com/blog/2399752

    commons-pool2-2.0-API文档-中文版.zip

    标签:apache、commons、pool2、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    apache-common jar包

    包含commons-beanutils-1.9.3-bin commons-collections4-4.1-bin commons-dbcp-1.4-bin commons-lang-2.6-bin commons-lang3-3.6-bin commons-pool-1.6-bin commons-pool2-2.4.3-bin

    commons-pool2-2.11.1-bin.zip

    DBCP(DataBase Connection Pool)是 apache common上的一个 java 连接池项目,也是 tomcat 使用的连接池组件,依赖 于Jakarta commons-pool 对象池机制,DBCP可以直接的在应用程序中使用。 使用DBCP会用到commons-...

    Socket-Apache-Commons-Pool2

    套接字-Apache-公共-Pool2 这是一个有关如何使用套接字服务器和客户端的演示。 套接字客户端使用Apache公共pool2来管理套接字。 因此,我们可以在多线程的情况下使用共享套接字。 我使用bernardvai的示例创建了套接...

    thriftpool:Thrift RPC连接池,java实现,基于apache commons pool

    储蓄池 Thrift RPC连接池,java实现,基于apache commons pool

    common-dbcp.jar,common-pool.jar,common-collections.jar

    commons-dbcp-1.4 jar java连接池. .commons-dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:

    apache-commons源码及jar文件

    Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...

    go-commons-pool, 用于golang的通用对象池.zip

    go-commons-pool, 用于golang的通用对象池 共享池 go公共池是用于 Golang的通用对象池,直接从 Apache公共池重写。特性支持自定义 PooledObjectFactory 。Rich pool配置选项,可以精确控制池对象生命周期。 请参见 ...

    Spymemcache-commonpool-1:使用 apache 公共池 1.x 的 spymemcache 连接池

    spymemcache 的连接池 Spymemcache 是单线程 IO,即使我们在此连接上进行多操作,它也只维护一个到 ... 否则,请使用我的 spymemcache-commonpool-2,它更安全、更快且经过测试 例子 见测试功能 执照 做你想做的。

    rh-java-common-apache-commons-pool-1.6-9.12.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    SpringBoot2.2+commons-pool2实现多Ftp连接池完整项目,开箱即用,经过长期生产使用稳定可靠

    使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...

    在Apache Tomcat 7设置redis作为session store

    下载apache的common pool包, 将这几个jar包拷贝到tomcat7的lib目录下 其实这里是有坑的,不过你们比较幸运,我帮你先踩了。如果你全部下载最新版本的话,肯定启动不起来。我试了很久才匹配这些jar的版本。在附件中...

    最新common.apache.*.jar下载

    包括以下jar包: Attributes Beanutils Betwixt Chain CLI Codec Collections Configuration Daemon DBCP DbUtils Digester Discovery EL ...Pool Primitives Proxy SCXML Transaction Validator VFS

Global site tag (gtag.js) - Google Analytics