Spring第一节
2021-05-28 11:01
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class DynamicAgent implements InvocationHandler{
private Object object;//动态代理,创建一个你需要代理的对象 ChineseFood
public Object bind(Object object){//object ChineseFood
this.object=object;//this关键字指向本类中的object为传进来的object
return Proxy.newProxyInstance(object.getClass().getClassLoader(),object.getClass().getInterfaces(),this);
//object.getClass().getClassLoader()类加载器,object.getClass().getInterfaces()类接口,this(自己理解(实现类))
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//重写invoke方法
//proxy是对象,对象为类中的属性 method为类中的方法 args为方法中的形参,因为形参可能不止一个,所以用数组
System.out.println("点菜。。。");
Object result = method.invoke(object, args);//method(方法).invoke(引进)
System.out.println("付款。。。");
return result;
}
}
书写完成之后,写出测试类进行确认