目录
DataSourceTransactionManager的实现
编程式事务管理
事务的创建
TransactionAspectSupport 的 createTransactionIfNecessary()方法 作为事务创建的入口,在 createTransactionIfNecessary()方法 的调用中,会向 AbstractTransactionManager 执行 getTransaction()方法,这个获取 Transaction 事务对象 的过程,在 AbstractTransactionManager 实现 中需要对事务的情况做出不同的处理,然后,创建一个 TransactionStatus,并把这个 TransactionStatus 设置到对应的 TransactionInfo 中去,同时将 TransactionInfo 和当前的线程绑定,从而完成事务的创建过程。createTransactionIfNeccessary()方法 调用中,可以看到两个重要的数据对象 TransactionStatus 和 TransactionInfo 的创建,这两个对象持有的数据是事务处理器对事务进行处理的主要依据,对这两个对象的使用贯穿着整个事务处理的全过程。
public abstract class TransactionAspectSupport implements BeanFactoryAware, InitializingBean {
/**
*
本文详细介绍了Spring声明式事务的实现原理,包括事务的创建、挂起、提交、回滚,以及DataSourceTransactionManager的实现。事务创建通过TransactionStatus和TransactionInfo与线程绑定,挂起时涉及线程与事务信息的保存。提交和回滚由具体的事务处理器完成,如DataSourceTransactionManager。此外,文章还探讨了声明式事务的配置、读入、匹配和拦截器的实现,以及TransactionInterceptor如何处理事务提交和回滚。
订阅专栏 解锁全文
935

被折叠的 条评论
为什么被折叠?



