gpt4 book ai didi

hook - AspectJ 和 ASM 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 16:08:37 26 4
gpt4 key购买 nike

据我了解,这两个框架都是静态的,将监控代码注入(inject)到类代码中。那么区别是什么呢?

最佳答案

ASM 是一个框架/库,它为您提供一个 API 来轻松操作现有字节码和/或生成新的字节码。

另一方面,AspectJ 是 Java 语言之上的语言扩展,具有自己的语法,专门设计用于使用面向方面的编程概念扩展 Java 运行时的功能。它包括一个编译器/编织器,可以在编译时或运行时运行。

它们的相似之处在于两者都通过对现有字节码的字节码操作和/或生成新字节码来实现其目标。

从某种意义上说,ASM 更通用,它没有关于您希望如何修改现有字节码的意见,它只是为您提供一个 API,您可以用它做任何您想做的事情。另一方面,AspectJ 更具体,范围更窄,它只支持一些预定义的 AOP 构造,但它为您提供了一个界面(aspectj 语言),如果您能适应这些构造,它会更容易使用为您提供。

对于我见过的大多数用例,AspectJ 绰绰有余,但在极少数情况下它不会,ASM 可能是一个不错的选择,但您需要更多的编程工作来实现类似的结果。

关于hook - AspectJ 和 ASM 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com