我正在研究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 处理事务行为的对象。
推理是否正确?