拦截器会对处理器进行拦截,这样通过拦截器就可以增强处理器的功能。Spring MVC中,所有的拦截器都需要实现HandlerInterceptor接口,该接口包含如下三个方法:preHandle()、postHandle()、afterCompletion()。
这些方法的执行流程如下图:
通过上图可以看出,Spring MVC拦截器的执行流程如下:
-
执行preHandle方法,它会返回一个布尔值。如果为false,则结束所有流程,如果为true,则执行下一步。
-
执行处理器逻辑,它包含控制器的功能。
-
执行postHandle方法。
-
执行视图解析和视图渲染。
-
执行afterCompletion方法。
Spring MVC拦截器的开发步骤如下:
-
开发拦截器:
实现handlerInterceptor接口,从三个方法中选择合适的方法,实现拦截时要执行的具体业务逻辑。
-
注册拦截器:
定义配置类,并让它实现WebMvcConfigurer接口,在接口的addInterceptors方法中,注册拦截器,并定义该拦截器匹配哪些请求路径。
注意:本文归作者所有,未经作者允许,不得转载