我学习了hibernate,我知道hibernate已经停止使用cglib,转而使用javaassist。
我还知道javaassist和cglib是用来生成代理的。
所以我想知道这两个是如何工作的,哪一个更好?他们的工作风格有什么不同?
发布于 2015-09-06 04:01:50
Cglib不再积极维护,库的开发人员甚至不会应用提供的补丁:https://jaxenter.com/hibernate-to-deprecate-cglib-as-bytecode-provider-102106.html
此外,javassist还提供了一个API,用于修改类,而不仅仅是子类化。这些API还允许字节码级别的操作,而cglib只允许几个硬编码的拦截。
最后,还有一个很小的性能差异。有关概述,请参阅我创建的第三个字节码操作框架byte Buddy的这个表:http://bytebuddy.net/#/tutorial
https://stackoverflow.com/questions/32412928
复制相似问题