动态代理

特征:字节码随用随创建,随用随加载。

作用:不修改源代码的基础上对被代理类的方法增强

分类:

    1、基于接口的动态代理

        (1)涉及类:Proxy

        (2)如何创建代理对象:Proxy类中的newProxyInstance

        (3)最低要求:被代理类最少创建一个接口

  newProxyInstance(被代理类的类加载器,被代理类的字节码,new  InvocationHandler的匿名类或实现类)

InvocationHandler的匿名类或实现类重写invoke方法对被代理方法增强,执行被代理对象的任何接口方法时都被经过invoke方法

    2、基于子类的动态代理

        (1)涉及类:Enhancer

        (1)如何创建代理对象:Enhancer类中的create方法

        (1)最低要求:被代理类不能是最终类,就是必须有子类

create(被代理对象的字节码,Callback的子类或实现类)

参数二一般采用 MethodInterceptor这个实现类

你可能感兴趣的:(动态代理)