我学习hibernate,我了解到hibernate已经停止使用cglib并切换到javaassist。
我还了解到javaassist和cglib用于代理生成。
所以我想知道这两者是如何工作的以及哪一个更好?
他们的工作方式有什么区别?
Cglib 不再被积极维护,库的开发人员甚至不会应用提供的补丁:https://jaxenter.com/hibernate-to-deprecate-cglib-as-bytecode-provider-102106.html
此外,javassist 提供了一个用于修改类的 API,而不仅仅是用于子类化它们。这些 API 还允许进行字节码级操作,而 cglib 只允许进行几种硬编码拦截。
最后,存在细微的性能差异。有关概述,请参阅我创建的第三个字节码操作框架 Byte Buddy 的下表:http://bytebuddy.net/#/tutorial
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)