动态代理的概念你还没完全理解;你上面的public Connection proxyConnection(Connection conn){ 
你希望代理的是Connection 实例;当调用代理类的方法时,会回调invoke方法,在这个方法中你需执行Connection 的方法,然后返回方法的执行结果;不应该是你上面写的返回那个代理类对象;改正:private class ToolOfInPoolConnection implements InvocationHandler {

Connection conn;

public Connection proxyConnection(Connection conn){
this.conn = conn;
conn = (Connection) Proxy.newProxyInstance(conn.getClass().getClassLoader() , conn.getClass().getInterfaces() , this );
return conn ;
} public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
if( "close".equalsIgnoreCase(method.getName()) ){
System.out.println("ok");
}else{
System.out.println("No");
}
return method.invoke(conn, args);
}
}