动态代理

动态代理其实挺简单。就两个类。生成代理类Proxy.newProxyInvocation(参数1.参数2,参数3)
参数1:表名你要用那个类加载器去加载生成的代理类。(这个是JVM类加载的知识,可以去了解一下,挺简单)。
参数2:说明你要生成的代理类的接口。
参数3:实现了InvocationHandle的类,这个类只有一个方法需要你要实现它。
invoke(Object proxy, Method method, Object【】 args) {
这个方法第一个参数,是生成的代理类,目前没发现用处,不管它。
第二个参数,是执行的方法(利用反射的原理,可以去看反射,也很简单。)
第三个参数,是执行某方法需要的参数。
第二个第三个参数解释执行的方法意思是:代理类不是要代理某个对象么,然后增强里面的方法么,指得就是这个方法,代理类会为几乎所有方法都增强,除非你在这里做判断。
返回值,是执行这个方法所返回的值。
然后你要去执行方法,就是用第二参数的invoke(obj,args);第一个参数是你要增强的对象。第二个是参数。object是你返回的类型
Object object= method.invoke(obj,args);

posted @ 2021-07-31 12:32  是木木呀  阅读(64)  评论(0)    收藏  举报