- 根据当前请求,找到HanlderExecutionchain[可以处理请求的handler以及handler的所有拦截器]
- 先来顺序执行所有拦截器的preHandle方法
- 如果当前拦截器preHandle返回为true,则执行下一个拦截器的preHandle
- 如果当前拦截器preHandle返回为false,直接倒序执行所有已经执行了的拦截器的afterCompletion方法;
- 如果任何一个拦截器返回false,直接跳出不执行目标方法
- 所有拦截器都返回true,执行目标方法
- 倒序执行所有拦截器的postHandle方法
- 前面的步骤有任何异常都会直接触发afterCompletion方法
- 页面成功渲染完成以后,也会倒序触发afterCompletion方法