您现在的位置是:主页 > news > 十堰h5网站建设/数据分析培训课程

十堰h5网站建设/数据分析培训课程

admin2025/6/3 21:44:08news

简介十堰h5网站建设,数据分析培训课程,国际b2b网站大全,百度收录左侧带图片的网站2019独角兽企业重金招聘Python工程师标准>>> 说道动态代理,我所接触的分为两种:1、基于jdk的动态代理。2、基于cglib的动态代理。上一章说了,子所以会有动态代理,是因为避免静态代理类太多而出现的(我自己是…

十堰h5网站建设,数据分析培训课程,国际b2b网站大全,百度收录左侧带图片的网站2019独角兽企业重金招聘Python工程师标准>>> 说道动态代理,我所接触的分为两种:1、基于jdk的动态代理。2、基于cglib的动态代理。上一章说了,子所以会有动态代理,是因为避免静态代理类太多而出现的(我自己是…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

说道动态代理,我所接触的分为两种:1、基于jdk的动态代理。2、基于cglib的动态代理。上一章说了,子所以会有动态代理,是因为避免静态代理类太多而出现的(我自己是这么理解的)。好了,废话少说,先来看一下基于jdk的动态代理吧。

首先定义一个接口:

public interface Greeting {public void sayHello(String name);}

接着,定义实现类:

public class GreetImp implements Greeting{public void sayHello(String name) {// TODO Auto-generated method stubSystem.out.println("hello"+name);}}

我们的目标就是为Greeting接口中的方法进行拦截。

我们开始写我们的动态代理类:

public class DyemJdkProxy implements InvocationHandler{private Object obj;public DyemJdkProxy(Object obj){this.obj=obj;}public <T> T getProxy(){return (T) Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);}public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {// TODO Auto-generated method stubObject result;System.out.println("方法前");result=method.invoke(obj, args);System.out.println("方法后");return result;}}

就这样,我们完成了基于jdk的动态代理类的代码。。。这个代理类可以代理接口为Greeting的所以实现类了。

public static void main(String[] args) {GreetImp greetImp=new GreetImp();Greeting g=new DyemJdkProxy(greetImp).getProxy();g.sayHello("小明");}


转载于:https://my.oschina.net/littlestyle/blog/533865