繁体   English   中英

为什么流行的框架在内部使用字节码操作?

[英]Why do popular frameworks use bytecode manipulation internally?

我听说很多框架(Struts,Spring,Hibernate,AspectJ)在内部使用字节码操作。 使用字节码操作有哪些令人信服的理由? 我期待每个特定框架至少有一个用例的答案。

这些框架操纵类的字节码,以便他们可以在其中添加对其功能的支持。 例如,Hibernate可以编码到类的getter / setter中,以帮助它跟踪实体何时被更新(变脏)和/或返回包含代码的子实体的代理以进行延迟加载。

Aspectj操纵字节码以添​​加您请求它强制执行的方面。 例如,如果要在调用类时向类的所有方法添加建议,则aspectj可以向每个方法添加字节码(执行该日志记录)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM