1. 定义拦截器类
public class ReSubmitInterceptor extends HandlerInterceptorAdapter {
/** * 进入controller前判断是否要验证重复提交 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
}
}
2. 编写配置类
@Configuration public class ResourceHandlerConfig extends WebMvcConfigurationSupport {
/** * 注册 拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new ReSubmitInterceptor()) .addPathPatterns("/**").excludePathPatterns("/error/page/**"); }
}
3. 可能造成拦截器不生效的原因:
以前遇到要使用springboot拦截器却始终未生效的状况,查了网上的博客,大抵都是@Component,@Configuration注解未加,或是使用@ComponentScan增加包扫描,但是尝试后都没有生效,最后才发现是因为之前为了解决跨域问题配置类继承了WebMvcConfigurationSupport,并重写了里面的方法。之后的拦截器配置类同样继承了这个这个类并重写方法,它只会生效前一个配置类,后一个配置类不会生效,所以解决方法就是在一个配置类重写这两个方法就行了,不要分成两个配置类写。