我听说很多框架(Struts、Spring、Hibernate、AspectJ)都在内部使用字节码操作。使用字节码操作的重要原因是什么?我期望每个特定框架至少有一个用例的答案。
发布于 2011-01-31 13:24:39
这些框架操作您的类的字节码,以便它们可以向其中添加对其功能的支持。例如,Hibernate可以编写代码到类的getter/setter中,以便帮助它跟踪实体何时被更新(变脏)和/或返回子实体的代理,这些子实体包含执行延迟加载的代码。
Aspectj操作字节码,以便添加您请求它强制执行的方面。例如,如果您希望在调用某个类的所有方法时将通知添加到日志中,那么aspectj可以为每个方法添加字节码(执行日志记录)。
https://stackoverflow.com/questions/4847830
复制相似问题