【发布时间】:2018-04-16 08:14:37
【问题描述】:
Javassist proxyFactory 可以在运行时使用方法拦截器创建代理。但是如何通过修改类文件来给类静态添加方法拦截器呢?
例如,类Foo有100个方法,在调用Foo实例的任何方法之前,需要检查Foo实例是否被初始化。
public class Foo {
public void methodA() {
...
}
public void methodB() {
...
}
public void methodC() {
...
}
....
}
如何修改class文件添加这样的方法拦截器?一种方法是在每个方法的开头添加代码。有没有更好的办法?
其他字节码工具如cglib, ....怎么样?
【问题讨论】:
标签: javassist cglib byte-buddy method-interception