静态代理:代理类在程序运行之前就已经编译完成。
动态代理:代理类在运行时根据我们在Java代码中的“指示”动态生成的。
基于JDK的动态代理
(1)要求要被代理的类必须有接口;如下:
(2)要被代理的类
(3)代理类实现InvocationHandler接口,重写invoke方法;还要求代理类持有被代理的类;
(4)测试类Main,调用proxy.newProxyInstance即可生成被代理类的实例对象,只是还需要强转一下,强转后执行方法即可;
基于CGLIB的动态代理
(1)