java 动态代理代码
最近学了java 代理,感觉很神奇,尤其是动态代理,功能真是强大,如果有了动态代理,那么黑客是不是更加发展一步呢。。。
实现java动态代理,主要实现几个步骤
1.实现 InvocationHandler 接口,然后实现 public Object invoke(Object proxy, Method m, Object[] args) 方法,代码如下
package com.chapter1.dynamicproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class ProxyHandler implements InvocationHandler{
private Object proxied;
public ProxyHandler(Object proxied){
this.proxied = proxied;
}
@Override
public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
// TODO Auto-generated method stub
System.out.println("before");
m.invoke(this.proxied, args);
return null;
}
}
2. 应用步骤
package com.chapter1.dynamicproxy;
import java.lang.reflect.Proxy;
public class Test {
public static void main(String[] args) {
RealCoder rc = new RealCoder();
ProxyHandler ph = new ProxyHandler(rc);
Coder proxyc = (Coder)Proxy.newProxyInstance(rc.getClass().getClassLoader(),rc.getClass().getInterfaces(), ph);
proxyc.coding();
}
}