Spring源码之事务

    首先获取对应类的所有接口并连同类本身一起遍历,遍历过程中又对类中的方法再次遍历,一旦匹配成功便认为这个类适用于当前的增强器.

    对于事务的配置不仅仅局限于在函数上配置,在类或接口上的配置可以延续到类中的每个函数,那么,如果针对每个函数进行检测,在类本身上的事务属性岂不是检测不到了吗?带着这个疑问,我们继续探求matcher方法

    做匹配的时候,methodMatcher.matchers(method,targetClass)会使用TransactionAttributeSourcePointcut类的matchers方法

Spring源码之事务

此时的tas表示AnnotationTransactionAttributeSource类型,而AnnotationTransactionAttributeSource类型的getTransactionAttribute方法如下:

Spring源码之事务

    这里是指常规的一贯的套路,尝试从缓存加载,如果对饮的信息没有被缓存的话,工作又委托给了computeTransactionAttribute函数.

 

相关文章: