欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Spring Boot编写拦截器教程实例解析

时间:2021-05-18 09:48:33|栏目:JAVA代码|点击:

创建一个类并使其实现接口HandlerInterceptor

接口提供了一个请求的三个周期的拦截方法

在controller之前,返回true则放行,false反之,handler包含处理请求的controller类以及其方法

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
在controller接受请求之后,contorller渲染视图之前,如果发生异常就不执行了,可对ModelAndView操作

void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
在controller处理全部完成之后,ex参数包含处理期间发生的异常,但仅为未被全局捕获的异常

void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

public class TheInterceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("preHandle");
    return true;
  }

  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("postHandle");
  }

  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("afterCompletion");
  }
}

编写完成后需要将其注册进处理栈中才会生效, 创建WebMvcConfigurer的实现类

@Configuration
public class WebConfig implements WebMvcConfigurer {
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new MyInterceptor())
        // 需要拦截的路径,默认全部拦截
        .addPathPatterns("/test1")
        // 需要排除的路径
        .excludePathPatterns("/test2");
  }
}

上一篇:IntelliJ-Idea导出可执行Jar流程解析

栏    目:JAVA代码

下一篇:谈谈Spring 注入properties文件总结

本文标题:Spring Boot编写拦截器教程实例解析

本文地址:http://www.codeinn.net/misctech/124126.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有