有些人怀疑Spring如何使用AOP和代理处理事务行为?

时间:2015-04-24 09:46:43

标签: java spring architecture proxy spring-transactions

我正在研究Spring如何处理交易,我有以下疑问。

我有这个例子:

public class C<T extends Interface> extends T {
    public void doSomethingElse() {
        this.doSomething();
    }

    public static void main(String[] args) {
        C c;
        if(isSomethingLoaded) {
            c = new C<A>();
        } else {
            c = new C<B>();
        }
        c.doSomethingElse();
    }
}

我问:使用Spring AOP ClientServiceImpl的哪些方法是事务性的?

我知道正确的答案是: ClientServiceImpl中的所有方法也被声明到ClientService接口

但究竟是为什么?

我认为这可能取决于AOP Spring使用代理模式的事实。所以对象 ClientServiceImpl 放在一个代理对象中,该对象应该实现 ClientService 接口(因为它是一个JDK代理)并且还包装 SpringTransactionInterceptor 处理事务行为的对象。

推理是否正确?

0 个答案:

没有答案