图:自定义拦截器类
图:配置自定义拦截器类
图:HandlerExecutionChain.java的applyPreHandle方法,调用每个拦截器的preHandle方法
如果某个拦截器的preHandle方法返回了false,那么拦截器链上的之后的拦截器也不会被调用,目标方法也不会被调用;
图:可以在该方法中做权限检查,日志和事务等
可以在该方法中修改域中的属性或者修改转向的视图
图:注意mvc:interceptor的使用方法
图:HandlerExecutionChain类的applyPostHandle方法
从i=getInterceptors().length - 1可以理解为什么postHandle方法的调用是倒序的了。
图:HandlerExecutionChain类对拦截器的afterCompletion方法的调用
从i>=0可以很清楚的理解,对interceptor的afterCompletion方法的调用也是倒序的;
变量interceptorIndex的含义就是拦截器链中preHandle方法返回true的最大拦截器索引;
越努力,越幸运,欢迎关注我的个人技术公众号