本文共 1706 字,大约阅读时间需要 5 分钟。
1、创建自定义拦截器实现 HandlerInterceptor(拦截器处理器)
/** * 创建自定义拦截器 * @author xiao_wu * @date 2020/10/20 13:11 */@Slf4jpublic class MyInterceptor implements HandlerInterceptor { /** * 通过实现 HandlerInterceptor中的预先处理,方法进行请求验证操作 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { log.info("自定义拦截器"); log.info("这里可以编写不同的业务请求拦截"); String user = request.getHeader("user"); if(''.equals(user) || user == null){ log.info("验签失败---user不存在"); return false; } return true; } /** * postHandle(后期处理) * 该方法在preHandle返回为true,执行完Controller层的方法后执行 * 可以修改ModelAndView * ps:返回的为json数据时不能修改(@RestController)此类注解修饰不能修改 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView){ } /** * afterCompletion(完成后处理) * 当请求完成后执行,一般用户数据缓存清楚 */ @Override public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception e){ }}
2、实现WebMvnConfigurer
中的addInterceptors
方法进行自定义拦截器的注册
/** * 设置自定义拦截器 * @author xiao_wu * @date 2020/10/20 13:31 */@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { /** * 实现 WebMvcConfigurer 中的添加拦截器方法 * @param registry 拦截器注册表 */ @Override public void addInterceptors(InterceptorRegistry registry){ //使用拦截器注册表进行添加 自定义拦截器 registry.addInterceptor(new MyInterceptor()) //添加拦截路径 .addPathPatterns("/inter/**") //设置放行路径 .excludePathPatterns("/outer/**"); }}
转载地址:http://afhgn.baihongyu.com/