Spring-TX【五】Spring事务管理小结
这几天把Spring的事务处理源码分析了一下,基本上了解了其实现方式。在这里做个简单的小结。
先概括一下流程:(只分析声明式事务)
首先通过解析spring的xml配置文件,让spring支持事务注解,并将事务增强器放入IOC容器中。
在bean实例化之前,调用后处理程序,获取到当前类的所有增强器,通过代理获取目标类。
强化的过程都体现在TransactionInterceptor的invoke方法中:
开启事务、回滚事务、提交事务,这些逻辑流程的实现都在事务管理器中实现。
因为我是使用的DatasourceTransactionManager事务管理器,所以上面的三个操作,最终都委托它实现。
当然逻辑上的功能都在它的父类AbstractPlatformTransactionManager中实现,最终是实现于PlatformTranManager接口。
具体的提交、回滚等操作,都交由数据源处理。
在分析spring管理事务的时候,也好好看了看spring的7种事务传播行为,虽然很多,很复杂,但是从源码中看起来还挺清晰的。
之后有时间会分析一下JDBC的具体实现逻辑。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!