springboot多个拦截器执行顺序
如果第一个拦截器的 preHandle
方法返回 true
,而第二个拦截器的 preHandle
方法返回 false
,则第一个拦截器的 afterCompletion
方法仍然会被执行。
Spring Boot 中的拦截器是按照配置的顺序依次执行的。当请求进入控制器方法之前,会按照配置顺序依次执行每个拦截器的 preHandle
方法,如果其中一个拦截器的 preHandle
方法返回 false
,则后续的拦截器的 preHandle
方法和控制器方法都不会被执行,而是直接跳转到最后一个拦截器的 afterCompletion
方法。在这个过程中,如果某个拦截器的 preHandle
方法返回 true
,则会继续执行下一个拦截器的 preHandle
方法,直到所有拦截器的 preHandle
方法都执行完毕。然后,控制器方法会被执行,并且在控制器方法执行完毕后,会按照相反的顺序依次执行每个拦截器的 afterCompletion
方法。
因此,如果第一个拦截器的 preHandle
方法返回 true
,而第二个拦截器的 preHandle
方法返回 false
,则第一个拦截器的 afterCompletion
方法仍然会被执行。