使用拦截器

                                                                                            图:自定义拦截器类

                                                                                    图:配置自定义拦截器类

                             图:HandlerExecutionChain.java的applyPreHandle方法,调用每个拦截器的preHandle方法

如果某个拦截器的preHandle方法返回了false,那么拦截器链上的之后的拦截器也不会被调用,目标方法也不会被调用;

      图:可以在该方法中做权限检查,日志和事务等

        可以在该方法中修改域中的属性或者修改转向的视图

                                                                                          图:注意mvc:interceptor的使用方法

 

 

                           图:HandlerExecutionChain类的applyPostHandle方法

从i=getInterceptors().length - 1可以理解为什么postHandle方法的调用是倒序的了。

                    图:HandlerExecutionChain类对拦截器的afterCompletion方法的调用

从i>=0可以很清楚的理解,对interceptor的afterCompletion方法的调用也是倒序的;

变量interceptorIndex的含义就是拦截器链中preHandle方法返回true的最大拦截器索引;

 

越努力,越幸运,欢迎关注我的个人技术公众号

深耕java领域,技术专家,CSDN博客专家,联系我请去 微信公众号:波哥的技术积累,回复“资料”,会有意外惊喜,包含面试题,系统架构图,并发包源码分析等资料,而且波哥老师的视频教程【Java并发包源码分析(JDK1.8)】即将免费,https://edu.csdn.net/course/detail/22039,大家有对JUC源码感兴趣的,可以去学习,有问题微信联系,会及时解答!

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页