我正在阅读有关运行时代码注入的内容,并且有许多工具/ API可用,如Javassist,GluonJ和AspectJ,它们提供了注入代码的功能。但是,我不了解在运行时注入代码的目的,而我们可以通过Java中的子类来覆盖行为。使用Javassist和GluonJ,我可以在运行时创建类,但为什么有人这样做呢?任何人都可以帮助我理解代码注入的差异和目的吗?
答案 0 :(得分:0)
代码注入通常用于application that are used to modify/check/trace other software.
在Java中,我们通常会将此类库作为Bytecode modification libraries
,因此如果您在互联网上查看,您可能会在此名称下找到更多信息。
在这里,我列出了几个大型和着名项目的例子,我现在正在使用字节码修改它们的核心: