怎么使用SpringBoot配置一个拦截器
更新时间:2023-12-28在SpringBoot中配置一个拦截器需要以下步骤:
1.编写拦截器类
首先我们需要编写一个拦截器类,这个类需要实现HandlerInterceptor接口,实现preHandle、postHandle和afterCompletion三个方法,代码如下:
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //在请求处理之前进行调用(Controller方法调用之前) System.out.println("Interception: Before Handler method called..."); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { //请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后) System.out.println("Interception: Post Handler method called..."); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { //在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于清理资源) System.out.println("Interception: After completion called..."); } }
2.配置拦截器
接下来我们需要在SpringBoot的启动类中配置拦截器,代码如下:
@SpringBootApplication public class DemoApplication extends WebMvcConfigurerAdapter{ public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/login/**"); super.addInterceptors(registry); } }在addInterceptors方法中,我们可以添加自定义的拦截器。其中addPathPatterns方法添加需要拦截的路径,excludePathPatterns方法添加不需要拦截的路径。
3.测试拦截器
程序员需要测试拦截器是否生效,可以在Controller中编写一个测试方法,代码如下:
@RestController @RequestMapping("/test") public class TestController { @RequestMapping("/interceptor") public String testInterceptor(){ System.out.println("Controller method called..."); return "Interceptor called"; } }在浏览器中输入http://localhost:8080/test/interceptor,在控制台上可以看到以下输出: Interception: Before Handler method called... Controller method called... Interception: Post Handler method called... Interception: After completion called...
4.总结
通过以上步骤,我们就可以在SpringBoot中成功地配置一个拦截器。我们只需要在拦截器类中实现 HandlerInterceptor接口,并在SpringBoot的启动类上添加addInterceptors方法来添加拦截器即可实现拦截功能。可以通过在控制台输出调试信息来判断是否成功地拦截了请求。