https://www.cnblogs.com/qlqwjy/p/7550609.html
特点:字节码随用随创建,随用随加载
作用:不用修改源码,增强原方法
1.基于接口的动态代理(jdk)
被代理类必须实现一个接口
Proxy类 newProxyInstance()创建代理对象
newProxyInstance()方法参数
1.ClassLoader(被代理类的加载器)
2.Class[](让代理对象和被代理对象有相同方法) 固定的写法通过被代理对象来获取
3.new InvocationHandler() 重写invoke()方法
invoke()方法参数
Object proxy 代理对象的引用
Method method 当前执行的方法
Object[] args 执行方法的参数
执行:method.invoke(producer,args[0]);
2.基于子类的动态代理
Enhancer.create(producer.getClass(),new MethodInterceptor())
重写intercept方法 参数同invoke