advisor和aspect有什么区别,为什么在代理类生成之前会将全部的aspect和通用拦截器(MethodInterceptor)适配成advisor?

aspect是切面是由advice(通知=连接点JoinPoint+衡器逻辑;需要实现MethodInterceptor的invoke方法)和切点(pointCut)组成一个切面可以有多个通知;advisor也是一种切面但是只包含一个通知;将aspect适配成advisor是为了方便SpringAOP创建代理类的时候进行横切逻辑执行的管理。可以里理解为aspect是面向开发者的一种切面,支持在一个类里创建多个通知方便使用,advisor是面向SpringAOP的一种切面把多个aspect按通知拆分成多个Advisor方便管理。通用拦截器适配成advisor也是为了方便统一管理,通用拦截器(需要实现MethodInterceptor的invoke方法)的连接点类似环绕通知,切入点在适配的时候一般是全部方法 (TruePointCut)。

猜你喜欢

转载自blog.csdn.net/yangxiaofei_java/article/details/112117896