据我所知,Spring使用JDK为实现任何接口的类生成动态代理,而使用Cglib为不实现任何接口的类生成动态代理。对于描述性事务,Spring 使用代理来添加事务方面。请看下面的代码:
interface Demo {
void methodA();
}
public class DemoImpl implements Demo{
@Transactional
public void updateA() {}
@Transactional
public void updateB() {}
}
我认为 updateA 可以很好地处理事务。但是 updateB 方法呢?@Transactional 对它有用吗?可能我的理解不正确。如果能提供相关的Spring源码解释Spring是如何使用JDK/cglib代理类和接口的就好了。谢谢
我在xml中有配置:
<tx:annotation-driven transaction-manager="transactionManager" />