package reflect;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class ProxyDemo {
public static void main(String[] args) {
LoginProxy lp = new LoginProxy();
Login login =(Login)lp.proxy(new LoginImpl());
login.login();
}
}
interface Login{
public void login();
}
class LoginImpl implements Login{
public void login(){
System.out.println("login.......");
}
}
class LoginProxy implements InvocationHandler{
private Object obj;
public Object proxy(Object obj){
this.obj = obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object arg0, Method arg1, Object[] arg2)
throws Throwable {
doBefore();
Object result = arg1.invoke(obj, arg2);
doAfter();
return result;
}
private void doBefore() {
System.out.println("before....");
}
private void doAfter() {
System.out.println("after....");
}
}
动态代理Demo
最新推荐文章于 2019-09-09 10:05:06 发布