问题描述:在controller层用AOP拦截自定义注解,结果虽然不报错,前端却获取不到controller层里的方法返回的结果。切面里写了前置通知、环绕通知和后置通知,断点调试,在后置通知里没有获取到返回结果。多次检查后发现是环绕通知出了问题。
解决思路:@Around可以决定目标方法在什么时候执行,如何执行,甚至可以完全阻止目标方法的执行。在@Around 方法体内,调用ProceedingJoinPoint的proceed()方法才会执行目标方法,但一定要记得返回目标方法执行的结果,否则前端是获取不到结果的。如下: