Springboot中创建拦截器

目录

目的

实现过程

        1、创建拦截器

        2、注册拦截器

完整代码


目的

        在Springboot项目中创建拦截器,在进入Controller层之前拦截请求,可对拦截到的请求内容做响应处理,如:校验请求参数、验证证书等操作;

实现过程

        1、创建拦截器

        首先自定义创建一个类,然后使用该类实现HandlerInterceptor接口并实现接口中的preHandle、postHandle、afterCompletion方法;结构如下图所示:

Springboot中创建拦截器_第1张图片

     HandlerInterceptor接口中的方法作用和使用场景:

  1. preHandle() 方法:

    • 作用:在请求处理之前执行的方法。可以进行一些前置处理逻辑,例如权限验证、日志记录等。
    • 使用场景:适用于需要在请求处理之前进行拦截和处理的场景,例如身份验证、请求参数校验等。
  2. postHandle() 方法:

    • 作用:在请求处理之后执行的方法。可以对处理结果进行一些后置处理,例如添加返回结果信息、记录请求执行时间等。
    • 使用场景:适用于需要在请求处理之后进行拦截和处理的场景,例如添加公共返回信息、请求结果统计等。
  3. afterCompletion() 方法:

    • 作用:在请求完成后执行的方法。无论请求成功与否,都会执行该方法。可以进行资源释放和清理操作。
    • 使用场景:适用于需要在请求完成后进行资源释放和清理的场景,例如关闭数据库连接、释放文件资源等。
  • 鉴权拦截:在 preHandle() 方法中进行用户身份验证,根据验证结果决定是否放行请求。
  • 日志记录:在 postHandle() 方法中记录请求的处理结果和执行时间,用于统计和分析。
  • 资源释放:在 afterCompletion() 方法中释放数据库连接、关闭文件资源,确保资源的正确释放。

        

        2、注册拦截器

                自定义创建一个类,然后使用该类实现WebMvcConfigurer接口并实现接口中的addInterceptors防范;结构如下图所示:

Springboot中创建拦截器_第2张图片

        addInterceptor():将需要注册的拦截器放在该方法中;

        addPathPatterns():将需要被拦截的请求配置在该方法中,存在多个时可使用逗号间隔;

        excludePathPatterns():将需要放行的请求配置在该方法中,存在多个时可使用逗号间隔;

完整代码

    可以参考以下示例的完整代码Springboot中拦截GET请求获取请求参数验证合法性icon-default.png?t=N6B9https://blog.csdn.net/weixin_45151960/article/details/132184917?spm=1001.2014.3001.5501

你可能感兴趣的:(项目开发,springboot,springboot创建拦截器,springboot注册拦截器,springboot拦截请求)