1

我有一个包含多个 .class 文件的 jar 文件。每个 .class 文件中都有几个方法。现在,当 jar 正在执行时,即在运行时,我想用外部用户定义的方法拦截这些方法。也就是说,我想在我的 jar 类中的每个方法调用之前或之后运行一个外部方法。

我研究了 Spring-AOP,但它说我需要在 Spring 上下文中声明类,因此将按照在 Spring 上下文中编写的顺序使用它们的方法调用这些类。

但我希望执行流程是原始 jar webapp 的执行流程。

你能和我分享任何可以用来实现我上面解释的东西吗?提前致谢!

4

1 回答 1

2

您可以使用 JVM 检测 API,它允许您使用诸如http://commons.apache.org/proper/commons-bcel/之类的库来修改正在加载的类。请参阅此处的示例https://web.archive.org/web/20181012004753/http://blog.javabenchmark.org/2013/05/java-instrumentation-tutorial.html

于 2013-11-15T09:33:20.063 回答