首先获取对应类的所有接口并连同类本身一起遍历,遍历过程中又对类中的方法再次遍历,一旦匹配成功便认为这个类适用于当前的增强器.
对于事务的配置不仅仅局限于在函数上配置,在类或接口上的配置可以延续到类中的每个函数,那么,如果针对每个函数进行检测,在类本身上的事务属性岂不是检测不到了吗?带着这个疑问,我们继续探求matcher方法
做匹配的时候,methodMatcher.matchers(method,targetClass)会使用TransactionAttributeSourcePointcut类的matchers方法
此时的tas表示AnnotationTransactionAttributeSource类型,而AnnotationTransactionAttributeSource类型的getTransactionAttribute方法如下:
这里是指常规的一贯的套路,尝试从缓存加载,如果对饮的信息没有被缓存的话,工作又委托给了computeTransactionAttribute函数.