美文网首页
java 动态代理详解

java 动态代理详解

作者: lmxy1990 | 来源:发表于2018-11-09 17:45 被阅读0次

    动态代理使用方法

    无论是jdk的还是cglib的,基本使用方法都一样.即Proxy代理类提供基础的几个方法.

    1.getInvocationHandler

    传入参数:代理对象.(也就是newProxyInstance方法返回的对象.)

    用于获取代理的处理实现.当通过代理类执行某一方法调用的时候,会调用这个Handler的invoke方法.

    2.getProxyClass

    传入类加载器,需要代理的接口.返回代理类.这里的代理类cglib是动态生成,jdk是jvm反射.

    用于创建代理类,通常我们由接口  -> 实现类 ,这个方法就是放回借口的实现类,只不过该实现类是不具备实现功能需求的空实现类.

    3.newProxyInstance

    传入类加载器,需要代理的接口,代理接口的方法处理器.返回代理实例,这个实例可以通过强制转换为任意接口的实现bean.

    该方法是用的最多的方法,该方法的逻辑是先动态创建接口的实现类,该实现类的实现方法,然后设置方法处理器Invaocation,所有的方法调用,都会转发到Invaocation 的invoke去处理.我们只需要实现invoke方法即可.

    4.isProxyClass

    判断一个类是否是代理类.如果是代理类,

     然后实现InvaocationHandler 接口,通过Proxy.newProxyInstance 生成的实例,在执行调用方法的时候,都会调用该实现类的invoke方法.

    eg:

    相关文章

      网友评论

          本文标题:java 动态代理详解

          本文链接:https://www.haomeiwen.com/subject/wtsnxqtx.html