Java 的动态代理如何实现?
回答
-
在Java中,实现动态代理有两种方式:
- JDK 动态代理:Java.lang.reflect 包中的Proxy类和InvocationHandler接口提供了生成动态代理类的能力。
- Cglib 动态代理:Cglib (Code Generation Library )是一个第三方代码生成类库,运行时在内存中动态生成一个子类对象从而实现对目标对象功能的扩展。
-
这两种实现方式的区别:
- 使用JDK动态代理的对象必须实现一个或多个接口;
- 使用cglib代理的对象则无需实现接口,达到代理类无侵入。