1、作用: 代理类在运行时创建崭新的类,实现指定的接口
调用处理器:实现了 InvocationHandler接口,该接口只有一个方法。
Objcect invoke(Object proxy, Method method, Object[] args)
2、AOP的实现:
动态代理只能针对接口实现代理,不能针对类。
如果要针对java类提供代理,需要用动态字节码生成。最流行的就是 CGLIB.
cglib也有个问题,它是通过继承来实现代理的,所以无法为 final方法提供代理