# 如何自定义
HandlerInterceptor
实现接口
mvc:interceptors
配置 bean
## mvc:interceptor
配置 bean
这种配置,可以指定(或者排除) 路径
## 总结
- preHandle - 可以考虑做权限,日志,事务
- postHandle - 可以对请求域中的属性或视图作出修改
- afterCompletion - 释放资源
## debugger 看 流程
perHandle
下图可知,perHandle 的 调用 是在 <mark>调用目标方法之前</mark>
如果,某一个***的 preHandle
方法返回 false ,后面***也就不继续执行了 , 之前的 (上面) DispatcherServlet doDispacher 也直接 返回
postHandle
下图可知,postHandle 的调用时在:<mark>目标方法之后,渲染视图之前</mark>
afterCompletion
在 processDispatchResult 中调用
render
方法(渲染视图) <mark>之后</mark>调用
文章目录
# 多个***下的执行顺序
## 执行结果分析
## 代码角度分析
preHandle
顺序
postHandle
倒序
afterCompletion
<mark>从 interceptorIndex 开始</mark>(之前执行的最后一个***),倒序
interceptorIndex
在哪里定义?
preHandle()
方法 - 里面定义