学堂 学堂 学堂公众号手机端

在SpringBoot中实现拦截器可以通过两种方式: 实现HandlerInterceptor接口:创建一个类并实现HandlerInterceptor接口,然后实现其preHandle、postHandle和afterCompletion方法,分别用于在请求处理前、请求处理后以及请求完成后进行处理

lewis 2年前 (2023-09-25) 阅读数 6 #技术

在SpringBoot中实现拦截器可以通过两种方式:

  1. 实现HandlerInterceptor接口:创建一个类并实现HandlerInterceptor接口,然后实现其preHandle、postHandle和afterCompletion方法,分别用于在请求处理前、请求处理后以及请求完成后进行处理。最后在配置类中注册拦截器。

示例代码如下:

@Component publicclassMyInterceptorimplementsHandlerInterceptor{ @Override publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{ //在请求处理前进行拦截处理 returntrue; } @Override publicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{ //在请求处理后进行拦截处理 } @Override publicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{ //在请求完成后进行拦截处理 } }

在配置类中注册拦截器:


@Configuration publicclassInterceptorConfigimplementsWebMvcConfigurer{ @Autowired privateMyInterceptormyInterceptor; @Override publicvoidaddInterceptors(InterceptorRegistryregistry){ registry.addInterceptor(myInterceptor).addPathPatterns("/**"); } }
  • 继承HandlerInterceptorAdapter类:创建一个类并继承HandlerInterceptorAdapter类,然后重写其preHandle、postHandle和afterCompletion方法,同样在配置类中注册拦截器。
  • 示例代码如下:

    @Component publicclassMyInterceptorextendsHandlerInterceptorAdapter{ @Override publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{ //在请求处理前进行拦截处理 returntrue; } @Override publicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{ //在请求处理后进行拦截处理 } @Override publicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{ //在请求完成后进行拦截处理 } }

    在配置类中注册拦截器同样使用addInterceptors方法进行注册。

    版权声明

    本文仅代表作者观点,不代表博信信息网立场。

    热门