djcproxy - 动态 Java 类代理
Apache
跨平台
Java
软件简介
djcproxy 是一个小型的 Java 库,实现动态 Java
类代理。使用它可以在运行时对已存在的对象创建代理对象,用来创建面向方面特性。例如度量某个方法的执行时间,修改方法行为,记录方法执行等等。
完整示例代码:
protected static class A {
public A() {
}
public int method() {
return 1;
}
}
private class Interceptor implements MethodInterceptor {
@Override
public Object intercept(Object obj, Method method, Object[] args)
throws Exception {
if (method.getName().equals("toString")) {
return "interceptedToString";
}
return 0;
}
}
@Test
public void given_Object_when_CreatingSource_then_GettingInterceptorResult()
throws Exception {
A a = new A();
ProxyFactory<A> factory = new ProxyFactory<>();
A s = factory.create(a, new Interceptor());
Assert.assertEquals("interceptedToString", s.toString());
Assert.assertEquals(0, s.method());
}