Scripts 学盟

标题: [视频]菜鸟学JDK动态代理 [打印本页]

作者: 混混@普宁.中国    时间: 2011-6-6 23:21:10     标题: [视频]菜鸟学JDK动态代理

新手同学们来一起学习学习!

视频下载地址:
http://u.115.com/file/dnhblze8
或者
http://www.gokuai.com/f/4Y6V2799JeHq7MFD
  1. public static Connection getConnection() throws SQLException, ClassNotFoundException {
  2.         Connection conn = newConnection();
  3.         // proxy 中可以统一对所有成员方法进行拦截
  4.         Connection proxy = newProxyConnection(conn);
  5.         return proxy;
  6. }

  7. public static Connection newProxyConnection(Connection conn) {
  8.         Handler handler = new Handler(conn);
  9.         Class<?>[]  interfaces = new Class<?>[] {
  10.                 Connection.class
  11.         };
  12.         // 动态创建  实现了某些接口  的实例
  13.         Object object = Proxy.newProxyInstance(
  14.                   Connection.class.getClassLoader()
  15.                 , interfaces
  16.                 , handler
  17.         );
  18.         return (Connection) object;
  19. }
复制代码
  1. package org.iscripts.proxy;

  2. import java.lang.reflect.Method;
  3. import java.sql.Connection;

  4. public class Handler implements java.lang.reflect.InvocationHandler {
  5.         private Connection conn ;
  6.        
  7.         public Handler(Connection conn) {
  8.                 this.conn = conn;
  9.         }
  10.        
  11.         @Override
  12.         public Object invoke(Object proxy, Method method, Object[] args)
  13.                         throws Throwable {
  14.                 Object result = null;
  15.                
  16.                 // 很方便对  代理对象的所有成员方法,进行统一拦截
  17.                 if (method.getName().equals("close")) {
  18.                         System.out.println("close 方法不允许调用!");
  19.                 } else {
  20.                         result = method.invoke(conn, args);
  21.                         System.out.println(method.getName() + " 方法己被调用!");
  22.                 }
  23.                
  24.                 return result;
  25.         }
  26. }
复制代码

作者: 那个谁    时间: 2011-6-7 09:13:27

混混厉害。。
作者: 莺子    时间: 2011-6-7 10:15:05

不厉害就不叫混混了
作者: fenfen    时间: 2011-6-7 13:45:28

我刚好需要看这个、、、(*^__^*) 嘻嘻……




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2