快捷搜索: 王者荣耀 脱发

后端web开发框架(八):Springboot拦截器的使用

一、拦截器功能简介及使用

1. 拦截器功能简介

拦截器主要出现在Controller类中,在客户端调用接口之前做一些预处理,或者在调用接口之后对返回信息做一层处理。如果不加拦截器,那我们需要对每一个接口加一段代码做处理,如果涉及到多个接口、多个模块,那我们的代码维护任务无疑是繁重的。

2. 拦截器分类

HandlerInterceptor 所有自定义拦截器或者springboot提供的拦截器的鼻祖,是最常见的,其拦截的http请求是来自于客户端、浏览器之类

preHandle():当某个URL已经匹配到对应的controller类中的某个方法,且在这个方法执行之前执行。所以preHandle()方法可以决定是否将请求放行,这是通过返回值来决定的,返回true则放行,返回false则不会向后执行

postHandle():当某个URL已经匹配到对应的controller类中的某个方法,且在执行完了该方法之后执行,但是在DispatcherServlet视图渲染之前,所以在这个方法中有个ModelAndView参数,可以在此做一些修改动作

afterCompletion():该方法是在整个请求处理完成之后(包括视图渲染)执行,这时做一些资源的处理工作,这个方法只有在preHandle()成功执行后并且返回true后才会执行。

3.配置拦截器

SpringBoot2前:

WebMvcConfigurerAdapater

SpringBoot2后:

WebMvcConfigurationSupport

@Autowired:引入自定义拦截器

addResourc

经验分享 程序员 微信小程序 职场和发展