djcproxy动态 Java 类代理

联合创作 · 2023-09-28 12:59

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());
}
浏览 4
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报