文档章节

spring 事务 @EnableTransactionManagement原理

o
 osc_4nmshwhm
发布于 2018/08/07 11:02
字数 353
阅读 6
收藏 0

精选30+云产品,助力企业轻松上云!>>>

@EnableXXX原理:注解上有个XXXRegistrar,或通过XXXSelector引入XXXRegistrar,XXXRegistrar实现了 
ImportBeanDefinitionRegistrar的registerBeanDefinitions方法,给容器注册XXXCreator。这个Creator实现了后置处理器, 
后置处理器在对象创建以后,包装对象,返回一个代理对象,代理对象执行方法利用拦截器链进行调用

* 1)、@EnableTransactionManagement
*        利用TransactionManagementConfigurationSelector给容器中会导入组件
*        导入两个组件
*        AutoProxyRegistrar
* ProxyTransactionManagementConfiguration * 2)、AutoProxyRegistrar: * 给容器中注册一个 InfrastructureAdvisorAutoProxyCreator 组件; * 利用后置处理器机制在对象创建以后,包装对象,返回一个代理对象(增强器),代理对象执行方法利用拦截器链进行调用; * 3)、ProxyTransactionManagementConfiguration是个@Configuration * 1、给容器中注册事务增强器transactionAdvisor; * 1)、事务增强器要用事务注解的信息,AnnotationTransactionAttributeSource解析事务注解 * 2)、事务拦截器transactionInterceptor: * TransactionInterceptor;保存了事务属性信息,事务管理器; * TransactionInterceptor是一个 MethodInterceptor; * 在目标方法执行的时候; * 执行拦截器链; * 只有事务拦截器: * 1)、先获取事务相关的属性 * 2)、再获取PlatformTransactionManager,如果事先没有添加指定任何transactionmanger * 最终会从容器中按照类型获取一个PlatformTransactionManager; * 3)、执行目标方法 * 如果异常,获取到事务管理器,利用事务管理回滚操作; * 如果正常,利用事务管理器,提交事务
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

JIT的Profile神器JITWatch

点击上方的蓝字关注我吧 程序那些事 简介 老是使用命令行工具在现代化社会好像已经跟不上节奏了,尤其是在做JIT分析时,使用LogCompilation输出的日志实在是太大了,让人望而生畏。有没有什么...

flydean
07/04
0
0
运维基础--虚拟机的使用(一)

虚拟机的使用 开始使用Linux操作系统时,首先可能会接触到两个主要的界面:GUI和CLI,即图形界面个命令界面,而运维一般极少使用到图形界面。 一、命令提示符的格式:[root@mylab11~] # roo...

osc_9os5791s
25分钟前
25
0
以程序员的方式,尽绵薄之力

作为程序员,我们不能冲在第一线,参与病毒防疫工作,我们希望通过我们的方式,让更多的人获取到关于疫情的有用的消息,正确的消息 虽然github可能是个相对小众的平台,对于非程序员来说,可...

Jipson
01/26
17
0
Oracle 等待事件之 db file scattered read

db file scattered read 官网解释: This event signifies that the user process is reading buffers into the SGA buffer cache and is waiting for a physical I/O call to return. A db......

osc_qlj7m2h9
26分钟前
19
0
互联网+时代的畅想

封面的台风卫星照片,我认为很形象地可以看作互联网的那一波浪潮。在智能手机普及的初始阶段,还记得我们对于互联网的狂热,有人说要用互联网颠覆一切,亦有人要用互联网干一切事情,当然,这...

zd200572
2015/09/02
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部