我学习了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