cglib跟jdk动态代理
时间: 2024-05-21 14:14:52 浏览: 101
jdk和cglib实现动态代理
Java动态代理分为两种:JDK动态代理和CGLIB动态代理。
JDK动态代理是Java自带的动态代理机制,它只能代理接口,不支持代理类。它是通过反射机制来生成代理类的,所代理的类必须实现接口,代理对象是实现了指定接口的类的一个实例。JDK动态代理只需要实现InvocationHandler接口即可,因为它只能代理接口,所以被代理对象必须实现至少一个接口。
CGLIB动态代理是基于字节码技术实现的,它可以代理类,也可以代理接口。CGLIB动态代理是通过继承被代理类来实现的,所以它可以代理没有实现接口的类。CGLIB动态代理需要引入cglib的jar包,代理的对象是被代理类的一个子类。CGLIB动态代理需要实现MethodInterceptor接口。
总的来说,JDK动态代理适合接口代理,CGLIB动态代理适合类代理。如果被代理的对象实现了接口,建议使用JDK动态代理,否则使用CGLIB动态代理。
阅读全文