Bonecp 数据源 (1)

bonecp 官网

为什么要学习BoneCP

java连接池发展了这么久,基本上已经都很稳定了,你看 C3P0 和 DBCP 都不再发布新版本了。而 BoneCP出彩的地方就是跟进了技术的最新进展。研究它的源码,发现有两个主要原因:

1. BoneCP 不用 synchronized 关键字来处理多线程对资源的争用,而是使用 java.util.concurrent 包中的锁机制,这个包是在 JDK 1.5 才开始有的

2. 分区机制,尽管使用了锁,但还是存在着资源争用的问题,因此 BoneCP 可配置多个连接池分区,每个分区独立管理,互不影响。尽管连接池的性能并不会是一个系统中的瓶颈,但是我们单纯从连接池这个角度来看 BoneCP ,也是值得我们去学习的。
 

 

特性

 

    1.高度可扩展, 快速的连接池.    注:1)不用synchronized 关键字来处理多线程对资源的争用,而是使用 java.util.concurrent 包中的锁机制;2)首次使用分区机制来分开管理数据库连接;或许还有其他原因.

    2.回调(钩子拦截器)机制在连接状态的改变上。

    3利用分区技术提高性能

    4.允许直接访问一个连接或者语句

    5.智能调整连接池大小

    6.SQL语句缓存支持

    7.支持异步获取数据库连接 (通过返回Future的形式)

    8.通过释放连接助理进程来释放数据库连接,提高性能.

    9.通过initSQL参数在每次获取连接的时候执行SQL

    10.支持数据库热切换

    11.自动重试失败的数据库操作(当数据库或者网络挂掉的时候)

    12.JMX support

    13.延迟初始化能力(Lazy initialization capable)

    14.自动检测连接可用性 (keep-alives 等)

    15.允许直接通过数据源而不是通过驱动来获取一个新的数据库连接(Allow obtaining of new connections via a datasource rather than via a Driver)

    16.Datasource/Hibernate support capable

    17.Debug支持准确地高亮那些已经得到但是还没有关闭的链接(Debugging hooks to highlight the exact place where a connection was obtained but not closed)

    18.Debug支持展示那些被关闭两次的链接地址堆栈信息(Debugging support to show stack locations of connections that were closed twice. )

    19.支持自定义连接池名称.

    20.干净的代码结构,TestCase代码覆盖率达到100% (over 125 JUnit tests).

    21.免费的,开源的而且都是用java干的,最重要的是有很完整的javadocs支持。(Free, open source and written in 100% pure Java with complete Javadocs).

 

使用bonecp

pom.xml


	  
            com.jolbox  
            bonecp  
            0.7.1.RELEASE  
         

application.xml

   
      
            
            
            
            
            
            
            
          
          
          
          
          
      
   
      
      
            
	    
	    
	    
     

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据源)