spring源码深度解析-Spring源码阅读-Spring事务
发布日期:2021-07-30 03:26:44 浏览次数:1 分类:技术文章

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

        简要说一下流程,有的细节略过或者简化了。

        Spring事务其实是使用了Spring自定义标签的解析功能和SpringAOP功能。

        Spring定义了一个自定义标签,然后定义了这个标签对应的Parser。这个parser里面注册了一个AutoProxyCreator,也注册了一个Advisor(里面包含一个Interceptor)。

        然后涉及Bean的加载过程,所有bean在创建时候都会包含一个流程,就是调用BeanPostProcessor的postProcessAfterInitialization方法。我们之前注册的这个AutoProxyCreator就是BeanPostProcessor的一个实现,它的postProcessAfterInitialization方法其实是就是获取增强然后对这个bean创建代理。那其中获取到的增强就包括我们之前注册的那个Advisor。这里面有个判断增强是否匹配的过程,怎么标记我们需要增强的bean呢,就是加事务注解,包含事务属性。有检测到事务属性,就说明这个bean需要这个增强。

        增强完了之后,就是实际调用到这个bean的方法的时候,实际上调用的是那个代理,那个代理实际上要调用我们之前提到的那个Interceptor的invoke方法。这个方法里面,就是先创建事务,然后调用实际被增强的这个方法,然后异常处理包括回滚,然后提交事务。创建事务的流程是根据我们配置的事务属性的传播属性,然后对应不同的回滚流程,也对应不同的提交流程。

        整个流程简单地说完了。下面是看书时候整理的具体的图可以参考一下。

        

转载地址:https://blog.csdn.net/u010898743/article/details/103897495 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spring源码-BeanDefinition加载过程
下一篇:Cassandra的使用

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月28日 03时18分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章