💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
~~~ 定义一个class 现实一个接口 HandlerInterceptor ~~~ ~~~ @Slf4j public class UserInfoInterceptor implements HandlerInterceptor { /** * 拦截请求 访问controller之前 * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String UserId=request.getHeader("UserId"); String UserToken=request.getHeader("UserToken"); System.out.println("111"); if(StringUtils.isEmpty(UserId) || StringUtils.isEmpty(UserToken)){ log.error("用户校验不通过,信息不完整"); return false; } if(!UserId.equals("1001") || !UserToken.equalsIgnoreCase("zhangsan")){ log.error("用户校验不通过"); return false; } return true; } /** * 请求访问到controller之后 渲染视图之前 * @param request * @param response * @param handler * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } /** * 请求访问controller之后 渲染视图之后 * @param request * @param response * @param handler * @param ex * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } ~~~ * preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理; * postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了); * afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面) 然后需要注册 ![](https://img.kancloud.cn/b8/a1/b8a11388ee917c98e353aa5ac125a48e_735x460.png) * @Configuration 注解,表明这就是一个配置类。 * @Bean 注解:作用在方法上,声明当前方法的返回值是一个 Bean