前段时间想自己用AOP对Controller层切面做权限控制,在切面层验证后不成功就返回默认视图,但是一直不成功。
原因是:
AOP切入的是方法,不是某个控制器的请求,所以不能直接返回视图来中断这个方法的请求。
所以这里可以抛出一个异常来中断,例如我在advice中抛出一个AccessDeniedException来中断,之后在利用MVC的ExceptionResolver做一个全局的异常捕获,然后在这里面返回需要跳转的视图。