众所周知,springboot中是自带springmvc的,那么如何在springboot项目中使用springmvc的拦截器呢?
下面给出一段代码供参考:
拦截器类如下:
@Component
public class UserInterceptor implements HandlerInterceptor {
public UserInterceptor(){}
//方法执行前执行。返回true会继续执行下去,返回false取消请求
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("我是一个拦截器!!");
return true;
}
//方法执行后执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
//控制器执行完成后执行
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
注册拦截器的类:
@Configuration//或者@SpringBootConfiguration
public class UserInterceptorConfig extends WebMvcConfigurerAdapter {//或者implements WebMvcConfigurer
@Autowired
private UserInterceptor userInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册自定义拦截器,添加拦截路径和排除拦截路径
registry.addInterceptor(userInterceptor).addPathPatterns("/**");
}
}
这样就可以使拦截器生效了。