JDK动态代理和CGLIB代理的区别
- JDK动态代理只能代理接口,而CGLIB代理可以代理类。
- JDK动态代理是通过接口中的方法来生成代理类,而CGLIB代理则是通过继承被代理类来生成代理类。
- JDK动态代理的性能比CGLIB代理要好,因为JDK动态代理是基于反射实现的,而CGLIB代理是通过动态生成字节码实现的,生成代理类的过程比较耗时。
- JDK动态代理只能代理实现了接口的类,如果被代理的类没有实现任何接口,则无法使用JDK动态代理来代理;而CGLIB代理可以代理任何类,包括没有实现任何接口的类。
- JDK动态代理只能代理公共方法,而CGLIB代理可以代理所有方法,包括私有方法。
原文地址: https://www.cveoy.top/t/topic/boX5 著作权归作者所有。请勿转载和采集!