首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

动态署理~插头是不固定的

2012-10-28 
动态代理~插头是不固定的/*动态代理和静态代理的区别是:静态代理之所以静态是知道他要代理的东西是什么,也

动态代理~插头是不固定的

/*动态代理和静态代理的区别是:    静态代理之所以静态是知道他要代理的东西是什么,也就是插槽是固定的,他只能接收固定的插座*/class MyConnectionHandler implements InvocationHandler{    private Connection realConnection;     private Connection warpedConn ;     private DataSource dataSource;    MyConnectionHandler(DataSource dataSource){        this.dataSource = dataSource;    }       Connection bind(Connection conn){ //返回一个代理对象     this.warpedConn = (Connection)Proxy.newProxyInstance(      this.getClass().getClassLoader(),      new Class[]{Connection.class},      this); //Proxy这个类可以理解成他也会写代码,他会用类加载器写一个实现了Connection.class的接口的类,而这个类的具体实现由MyConnectionHandler 来完成       return warpedConn;   }   public Object invoke(Object proxy,Method method ,Object[] args)throws Throwable{   if("close".equals(method.getName())){ //对我们制定的方法做处理       this.dataSource.connsPool.addLast(this.warpedConn);   }   return method.invoke(this.conn,args);  }   }

热点排行