从图中看出,TransactionInterceptor是MethodInterceptor更是Advice的实现类,说明spring事务一定是基于方法。
Interceptor拦截器是Advice建言的扩展子接口,虽然啥都没实现。
MethodInvocation 是aop用来方法调用的接口。上图中说过jdk和cglib动态代理中有个核心依赖的ReflectiveMethodInvocation 也说明了代理的执行和建言者是怎么关联的。
TransactionAspectSupport 是一个事务切面的超级模板类,个人感觉spring只要叫support肯定是个超级的模板类(事务控制所需的属性,事务流程逻辑的控制都在这个超级模板类持有和实现)
AbstractPlatformTransactionManager 是一个控制具体事务操作的事务操作类控制着事务是不是该挂起了,该提交了等等。(事务的传播机制,事务的隔离机制,回滚点处理都是由这个类来依据TransactionStatus的实例实现的)
spring事务拦截器类图
最新推荐文章于 2022-07-14 11:28:13 发布