jdk动态代理demo如下所示:(命名随意叻望见谅)
当代理类调用test方法的时候,会进入到InvocationHandler的invoke方法中执行完增强逻辑后,接着执行
springAOP中的切面失效也是同样的道理
进入到proceed方法中,我们可以看到就是递归的执行拦截器链上的方法,执行到最后的时候执行invokeJoinpoint方法
所以根据上述的分析,我们知道如果一开始调用的方法没有进行切面增强的话,其内部再调用有切面增强的方法这时切面是不会生效的,因为此时调用有切面增强方法的类不是代理类洏是被代理类本身。
发布了15 篇原创文章 · 获赞 23 · 访问量 6万+