描述
java 动态代理
实现过程
- Enhancer 产生代理类
- 代理类实现MethodInceptor接口重载intercept方法实现方法的拦截
hello world
public class ProxyTest {
/**
*这是代理类
*/
public static class Proxy implements MethodInterceptor{
/**
* 拦截方法
*/
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
System.out.println("before method intercept...");
proxy.invokeSuper(obj,args);
System.out.println("after method intercept...");
return null;
}
}
/**
* 获取代理类实例
*/
public static Proxyed newInstance(){
Enhancer enhancer = new Enhancer();
Proxy proxy = new Proxy();
enhancer.setCallback(proxy);
enhancer.setSuperclass(Proxyed.class);
return (Proxyed)enhancer.create();
}
public static void main(String[] args){
Proxyed proxyed = newInstance();
proxyed.saySomething();
}
/**
* 这是被代理的类
*/
public static class Proxyed{
public void saySomething(){
System.out.println("please say something!");
}
}
}