Springboot拦截器配置

时间:2025-03-18 08:34:04
@Component public class IndexInterceptor implements HandlerInterceptor { @Reference(interfaceClass = UserService.class,version = "1.0.0",check = false,timeout = 15000)//使用了dubbo,可以不加 private UserService userService; //preHandler方法实在连接到达前进行判断,false为连接拒绝,true为连接通过 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("====拦截器启动===="); boolean b = false; User user = (User) request.getSession().getAttribute(Constants.SESSION_USER); if(ObjectUtils.allNull(user)){ b = false; }else{ User user2= userService.queryUserByPhoneAndPwd(user.getPhone(), user.getLoginPassword()); if(ObjectUtils.allNotNull(user2)){ b = true; }else{ b=false; } } System.out.println("====拦截器结束----->b="+b+"===="); return b; } /* postHandler用于对拦截信息处理完毕后进行其他操作 需要perHandler方法的返回值为true时才能执行 通肠胃preHandler通过后,就会执行 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); } /* 需要perHandler方法的返回值为true时才能执行 该方法主要用于清理资源等 它将在整个请求完成之后,也就是DispatcherServlet渲染了视图执行后,才会运行 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } }