特征:字节码随用随创建,随用随加载。
作用:不修改源代码的基础上对被代理类的方法增强
分类:
1、基于接口的动态代理
(1)涉及类:Proxy
(2)如何创建代理对象:Proxy类中的newProxyInstance
(3)最低要求:被代理类最少创建一个接口
newProxyInstance(被代理类的类加载器,被代理类的字节码,new InvocationHandler的匿名类或实现类)
InvocationHandler的匿名类或实现类重写invoke方法对被代理方法增强,执行被代理对象的任何接口方法时都被经过invoke方法
2、基于子类的动态代理
(1)涉及类:Enhancer
(1)如何创建代理对象:Enhancer类中的create方法
(1)最低要求:被代理类不能是最终类,就是必须有子类
create(被代理对象的字节码,Callback的子类或实现类)
参数二一般采用 MethodInterceptor这个实现类