我们先看看在生成代理时,是如何找到AspectJ形式声明的Advisor的。

提示:
    AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors()
    方法查找过程中即查找了Spring AOP原来的Advisor,也查找了AspectJ声明的
    Advisor。下图仅描述了查找AspectJ声明的Advisor这部分。

查找AspectJ形式声明的Advisor时序图如下:

查看大图

查找AspectJ形式声明的Advisor

下图是AspectJ相应注解转换为对应的Advice部分源代码:
查看大图

AspectJ相应注解转换为对应的Advice源码

通过以上AspectJ技术接入到Spring AOP体系,在代理生成中如何查找Bean适用的Advisor代理运行中如何查找方法适用的Advisor环节中,Pointcut(具体是AspectJExpressionPointcut)进行Class或方法匹配时,委托给aspectj来处理,其他还是复用Spring原有基础设施。到这里介绍Spring AOP理论部分的介绍要结束了,说了那么多,究竟好不好使。事务管理是在运用Spring AOP的典型例子,那我们先从Spring事务基础设施介绍开始。

快速导航: