Spring实现拦截器主要需要实现HandlerInterceptor接口并在WebConfig中注册此拦截器.

实现HandlerInterceptor接口,在处理请求前判断token是否匹配。返回false则表明拦截此请求


public class TokenInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token=request.getHeader("token");//获取请求中的token
if(token!=null) {
return token.equals("abcd");//还没有写存放token的方法 先和字符串比较
}
return false;
}

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {

}

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {

}
}

注册此拦截器


@Configuration
@ComponentScan("com.*.*")
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
/**
* 注册拦截器
* @param registry
*/
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor()).addPathPatterns("/order/orderstatus");
}
@Bean
public TokenInterceptor tokenInterceptor(){
return new TokenInterceptor();
}
}