2017-04-06 46 views
0

我正在阅读有关代码注入在运行时代码注入和子类之间的差异,并有可用如javassist,GluonJ和AspectJ许多工具/原料药,其提供的功能将代码注入。但是,我不明白在运行时注入代码的目的,而我们可以通过Java中的子类进行重写行为。使用Javassist和GluonJ,我可以在运行时创建类,但为什么有人会这样做呢?任何人都可以帮助我理解代码注入的差异和目的吗?什么是Java

回答

0

代码注入通常用于为application that are used to modify/check/trace other software.在Java中,我们通常reffer这类图书馆作为Bytecode modification libraries所以如果你看一下在互联网上你可能会发现在这个名字的更多信息。

这里我列举几个,我现在正在使用字节码修改成自己的核心的大和著名工程实例:

  1. Evosuite:这个项目需要一个应用程序中输入并生成单元测试它。代码注入用于探索所需的项目和依赖关系以及可追溯性
  2. JaCoCO:该项目是用于Java项目的工具。它应该被附加到你的应用程序中,一旦你运行你的JUnit测试,它就会生成一个关于覆盖范围的报告。很显然,在这里,代码注入是跟踪测试执行期间所做的每个方法调用所必需的。