Javassist proxyFactory 可以在运行时使用方法拦截器创建代理。但是如何通过修改类文件给类静态添加方法拦截器呢?
例如,类 Foo 有 100 个方法,在调用 Foo 实例上的任何方法之前,需要检查 Foo 实例是否已初始化。
public class Foo {
public void methodA() {
...
}
public void methodB() {
...
}
public void methodC() {
...
}
....
}
如何修改类文件以添加此类方法拦截器?一种方法是在每个方法的开头添加代码。有没有更好的办法?
其他字节码工具,例如 cglib,......?