动态代理技术:cglib与jkd的宏观对比
发布时间
阅读量:
阅读量
1、cglib与jdk宏观比较

2、三条主线对比
1、针对B这条线路而言:我倾向于采用jdk的方式生成代理类。
这是因为其基于接口实现,具有较低的耦合度。而cglib生成代理类的方式是通过继承被代理类,同时被代理类中包含的final方法无法被代理。
2、在授权这一方面:我更倾向于使用jdk的方式来完成授权操作。
在jdk1.8版本之前,cglib的授权效率确实优于jdk,原因是jdk通过反射机制调用B中的方法,而cglib则利用FastClass机制通过索引直接定位到B的方法,并借助回调函数实现方法调用。然而,在jdk1.8之后进行了优化调整,使得jdk与cglib在执行速度方面的差距不再明显。(问题:jdk1.8是如何改进的?)
3、关于动态生成代理类这一方面:我选择采用jdk的方式来实现。
尽管cglib在对象创建效率上略胜于jdk,但其维护成本相对较高,主要原因是cglib依赖于外部jar包,并且对版本有严格的要求,因此存在较强的约束性。
3、三条主线关系对比
jdk三条主线的关联性:
①、首先生成b对象,随
全部评论 (0)
还没有任何评论哟~
