spring boot配置springMVC拦截器

时间:2021-10-26 06:22:53

  spring boot通过配置springMVC拦截器

  配置拦截器比较简单, spring boot配置拦截器, 重写preHandle方法.

  1.配置拦截器:

spring boot配置springMVC拦截器

2重写方法

spring boot配置springMVC拦截器

这样就实现了拦截器.

  其中,在重写方法的逻辑中, 增加了一个注解,  这个注解的作用是:当方法头加上这个注解之后, 拦截器直接放行

这里说一下3个方法:

preHandle:预处理回调方法,实现处理器的预处理, 有返回值, true表示继续流程,  false表示中断流程,通过response产生响应

postHandle:后处理回调方法,实现处理器的后处理

afterCompletion:整个请求处理完成回调方法

spring boot配置springMVC拦截器

在方法头增加注解

spring boot配置springMVC拦截器

这样有一些对安全没必要太严格,  不需要校验token的接口就加上这个注解就可以.

接下来 WebMvcConfigurationSupport 配置静态资源

spring boot配置springMVC拦截器

还有个addViewControllers的方法可以配置视图

拦截器的实现还有一种方式:  WebRequestInterceptor, 这里说下他们的不同点, 具体的代码实现都差不多

WebRequestInterceptor 的 preHandle  没有返回值, 方法参数中没有response, 获取request更方便, 不影响后续流程, .   也就是说WebRequestInterceptor 更针对处理请求, 比如预设参数等.

HandlerInterceptor 的 preHandle  有返回值, 会影响到后续处理, 有response, 获取request相对会稍微多写点代码, 更注重业务处理, 比如12306可以判断是否售票时间内, 权限, 请求验签等等.

例如本文的业务是校验token, 登录权限

整体来说HandlerInterceptor的功能更强大, 但获取request相对代码会多点