jdk代理 cglib
时间: 2023-05-04 19:02:31 浏览: 131
JAVA动态代理实现Demo(JDK动态代理和CGLIB动态代理)
5星 · 资源好评率100%
在Java开发中,JDK代理和CGLib代理都是常用的代理模式实现方式。JDK代理主要是通过反射来实现,其实现的关键是要实现一个InvocationHandler接口作为参数,而接口中只有一个方法invoke,来处理方法调用的逻辑。通过在处理方法调用逻辑中,再通过反射机制调用目标对象的方法,从而实现代理的功能。JDK代理由于是通过动态生成代理类,所以在性能上会存在一定的开销,但仍然是比较轻量级的代理实现方式。
CGLib代理则是通过在运行时动态生成一个要代理类的子类来实现。在代理类中,将代理类中所有非final的方法都拦截下来,调用Callback接口中定义的方法。实现原理上与JDK代理有所不同,生成代理类的开销相对较大,但在执行时代理方法的开销比JDK代理相对较小。同时CGLib代理支持对类&接口进行代理,更加方便实用。
在实际开发过程中,根据项目需求和具体情况,可按需选择不同的代理模式实现。一般来说,应优先考虑使用JDK代理,如果需要对类进行代理时再选择CGLib代理。
阅读全文