问一个关于使用JAVA中的动态代理实现数据库连接池的问题
源代码如下: 
 接管Connection对象,屏蔽close()方法,当调用close()时,调用释放连接对象回连接池中的函数freeConnection() 
 public   class   ConnectionHandler   implements   InvocationHandler{ 
 	ConnectionPool   pool; 
 	Connection   conn;  	 
 	public   ConnectionHandler(ConnectionPool   pool){ 
 		this.pool=pool; 
 	}   
 	public   Connection   bind(Connection   conn){ 
 		this.conn=conn; 
 		Connection   proxyConn=(Connection)Proxy.newProxyInstance(conn.getClass().getClassLoader(),conn.getClass().getInterface(),this) 
 		return   proxyConn; 
 	}   
 	public   Object   invoke(Object   proxy,Mathod   method,Object[]   args)   throws   Throwable{ 
 		Object   result=null; 
 		if( "close ".equals(method.getName())){ 
 			this.pool.freeConnection(this.conn); 
 		} 
 		else{ 
 			result=mathod.invoke(this.conn,args); 
 		} 
 	} 
 	public   static   void   main(String[]   args)    
 	{ 
 	} 
 } 
 连接池类,管理数据库连接,用完不直接关闭连接,而是放回连接池中 
 public   class   ConnectionPool{ 
 public   synchronized   freeConnection(){ 
 /** 
 实现将对象放回连接池,不关闭连接 
 */ 
 } 
 public   synchronized   Connection   getConnection(){ 
 		try{ 
 			Connection   currentConnection=null; 
                                                                                  /** 
                                                                                     得到一个可用的数据库连接对象 
                                                                                  */ 
 			ConnectionHandler   handler=new   ConnectionHandler(this);//初始化代理类 
 			return   handler.bind(currentConnection);//绑定并接管返回的连接   
 		}catch(
SQLException   e){return   null;} 
 	} 
 } 
 对于上面这两个片段中,我想实现的是屏蔽Connectoin的close方法,当在客户端代码中调用conn.close()方法时,调用的是freeConnection()方法。但是我有一点想不通,我每次getConnection时得到的连接对象都是实现了动态代理,即这些连接都被接管了,一旦这些connection调用close()方法时,都调用了freeConnection(),那我怎么才能真正的把它关闭呢? 
 能力有限,不知道我有没有把问题说清楚,请各位大侠不要见笑,帮帮忙啊!!!
------解决方案--------------------再写个方法,实现连接的真正关闭不就行了
------解决方案--------------------有很多现成的连接池可以用啊~~~为什么要自己写呢? 
 自己写的会有各种问题, 
 扩展性也不会太好   
 用开源的改造一下吧,性能、安全什么的都会比较好 
 http://jopener.com/category/database-connection-pools
------解决方案--------------------我是想再实现连接池的过程中,学习java,因为我还是个初学者:)。 
 再写个方法?那这方法是应该写在哪个类里呢? 
 我就是有一点不清楚,当我在getConnection中用 
 ConnectionHandler handler=new ConnectionHandler(this);//初始化代理类 
 return handler.bind(currentConnection);//绑定并接管返回的连接 
 使连接绑定后,是否每一个连接之后的close操作会调用InvocationHandler接口的invoke函数呢? 
 不好意思,我属于初学者,水平有限,不知道问的问题是不是弱弱了点。。。
------解决方案--------------------再写个方法,遍历连接池,再调用close方法,一个个关闭不行吗?