@Transactional事务总结

Posted jelly12345

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Transactional事务总结相关的知识,希望对你有一定的参考价值。

一:加了注解@Transactional就能起作用的原理总结:

  1:首先是由类:JdkDynamicAopProxy,在invoke方法里面创建动态代理类,同时由拦截类进行拦截,代码如下所示:

List<Object> chain = this.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass);
所有的注解都是放在Map里面,代码如下所示:Map<AdvisedSupport.MethodCacheKey, List<Object>> methodCache

2:@Transactional也是由一个拦截器进行实行的,类名为:TransactionInterceptor

在方法:invokeWithinTransaction里面:关闭事务提交、抛出异常回滚事务、事务提交等步骤,来实现事务的控制

3:总结:事务实现原理是动态代理,在程序运行期间生成一个动态代理类,有动态代理、拦截器来实现






以上是关于@Transactional事务总结的主要内容,如果未能解决你的问题,请参考以下文章

Spring学习总结(33)—— 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?

Spring学习总结(33)—— 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?

事务失效的原因总结

玩转Spring--消失的事务@Transactional

声明式事务基于注解@Transactional的理解

Spring下面的@Transactional注解的讲解