我正在开始一个项目,必须为了覆盖目的(变量的定义 – 使用等)来检测java应用程序.它必须向应用程序添加跟踪语句和一些逻辑,并可能删除语句.
我已经搜索了仪器Java代码的方法,我总是找到关于字节码检测的方法.
我的问题是:这是测试Java应用程序的唯一方法吗?有没有其他方法可以做到这一点?字节码检测相对于其他检测有什么优势?
我可能会使用字节码解决方案,但我想知道其他方法(如果有的话)有什么问题需要精确决定.
谢谢!
最佳答案
接近改变字节码的另一种
方法是使用AOP(面向方面编程).
主库是
AspectJ,也主要定义了该区域.
可能有趣的第三个选项(因为您刚开始使用该程序)正在使用Spring.
这意味着你将需要学习一些关于IOC(控制反转)的内容,但它基本上意味着你不要自己创造你的物体,而是让春天为你做它,它有它的优点,因为当春天是创造它的能力时它可以在创建过程中添加各种各样的东西,而不必在aspectj中自己声明它.
就复杂性而言,我可能会评价它:
>春天(最简单)
> aspectj
>字节码检测(最难)
但谈到能力(力量)时,恰恰相反.例如做一些像减去代码的东西只能使用最后一个(我认为)