SpringAop代理行为无法理解

时间:2016-06-09 07:53:59

标签: java spring spring-aop

我无法通过大胆的陈述理解:

  

这里要理解的关键是内部的客户端代码   Main类的main(..)具有对代理的引用。这意味着   该方法调用该对象引用将是代理上的调用,   因此代理将能够委托给所有人   与该特定方法相关的拦截器(建议)   呼叫。 然而,一旦调用终于到达目标对象,   在这种情况下,SimplePojo引用,任何方法都可以调用它   make on,例如this.bar()或this.foo(),将会是   针对此引用而不是代理调用。这有   重要的含义。这意味着自我调用不会发生   得到与方法调用相关的建议   有机会执行。

以下代码:

public class Main {

    public static void main(String[] args) {

        ProxyFactory factory = new ProxyFactory(new SimplePojo());
        factory.addInterface(Pojo.class);
        factory.addAdvice(new RetryAdvice());

        Pojo pojo = (Pojo) factory.getProxy();

        // this is a method call on the proxy!
        pojo.foo();
    }
}

public class SimplePojo implements Pojo {

    public void foo() {
        // this next method invocation is a direct call on the 'this' reference
        this.bar();
    }




    public void bar() {
        // some logic...
    }
}

0 个答案:

没有答案