博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 技术内幕阅读笔记 - spring 事务处理
阅读量:6567 次
发布时间:2019-06-24

本文共 898 字,大约阅读时间需要 2 分钟。

hot3.png

声明式事务处理基本过程

通过ioc容器 和TransactionProxyFactoryBean对事务管理进行配置

  1. 读取和处理IoC容器配置的事务处理属性,并转化为Spring事务处理需要的内部数据结构。

  2. spring事务处理模块实现统一的事务处理过程。

  3. 底层事务具体实现。

 

  • 事务处理拦截器的配置

问题1:spring的TransactionInterceptor配置实在什么地方启动的,从而成为Advisor通知器中的一部分呢?

在IoC完成依赖注入的时通过initializeBean方法被调用

104702_YKo8_997478.png

事务处理配置的读入

问题1:如何判断是否需要进行事务处理

TransactionAttributeSourcePointcut  matches 方法

问题2:matches 匹配过程会用到 TransactionAttributeSource,这个属性在什么地方注入的

TransactionInterceptor 的基类 TransactionAspectSupport  通过 setTransactionAttributes 注入

NameMatchTransactionAttributeSource 作为 TransactionAttributeSource 具体实现

问题3:NameMatchTransactionAttributeSource  是怎样实现事务处理属性读入和匹配的

读入,遍历transactionAttributes 获得 事务方法名及事务属性 放到 map中(nameMap)

匹配,应用调用目标方法的时候,需要判断这个方法是否是事务方法,通过方法名在nameMap获得事务处理属性值,如果没有找到则通过PatternMatchUtils 进行命名模式上的匹配,如果匹配上会触发事务拦截器的拦截

 

  •     事物处理拦截器的实现

 

  •     事物处理的实现

 

  •     具体事物处理器的实现

DataSourceTransactionManager

HibernateTransactionManager

 

转载于:https://my.oschina.net/ipandage/blog/165593

你可能感兴趣的文章
[20150710]11G谓词推入问题2.txt
查看>>
20170401 11G Deprecated Attributes for LOG_ARCHIVE_DEST_n
查看>>
查看apache、linux、kernel、nginx等版本
查看>>
没想到,阿里工程师每天必刷的网站是......
查看>>
chrome使用技巧(看了定不让你失望)
查看>>
Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)
查看>>
基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
查看>>
mybatis做like模糊查询
查看>>
HDOJ 1214 圆桌会议
查看>>
很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)...
查看>>
分布式缓存系统Memcached简介与实践(.NET memcached client library)
查看>>
html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
查看>>
你真的会玩SQL吗?Case的用法(转)
查看>>
希捷期望HAMR实现其营收的增长
查看>>
Nginx+FastCGI运行原理
查看>>
乐视美国官网下线,官方公告称一周后还会回来
查看>>
符号执行:利用Angr进行简单CTF逆向分析
查看>>
倒计时一天 坚果智能影院让家用投影投出你的新生活主义
查看>>
mysql 协议的ResultsetRow包及解析
查看>>
男子在大街上捡到一U盘,竟有英国女王在伦敦机场的路线图
查看>>