Springboot中创建拦截器

这篇具有很好参考价值的文章主要介绍了Springboot中创建拦截器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

目的

实现过程

        1、创建拦截器

        2、注册拦截器

完整代码


目的

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

实现过程

        1、创建拦截器

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

Springboot中创建拦截器,项目开发,springboot,springboot创建拦截器,springboot注册拦截器,springboot拦截请求

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

  1. preHandle() 方法:

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

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

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

        

        2、注册拦截器

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

Springboot中创建拦截器,项目开发,springboot,springboot创建拦截器,springboot注册拦截器,springboot拦截请求

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

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

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

完整代码

    可以参考以下示例的完整代码Springboot中拦截GET请求获取请求参数验证合法性https://blog.csdn.net/weixin_45151960/article/details/132184917?spm=1001.2014.3001.5501文章来源地址https://www.toymoban.com/news/detail-638785.html

到了这里,关于Springboot中创建拦截器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot加入拦截器——登录拦截器的实现

            拦截器 Interceptor 在 Spring MVC 中的地位等同于 Servlet 规范中的过滤器 Filter,拦截的是处理器的执行,由于是全局行为,因此常用于做一些通用的功能,如请求日志打印、权限控制等。         核心原理:AOP思想 preHandle:  预先处理,在目标的controller方法执行之前,进行

    2024年02月15日
    浏览(43)
  • 【SpringBoot篇】Interceptor拦截器 | 拦截器和过滤器的区别

    拦截器(Interceptor)是一种软件设计模式,用于在应用程序处理请求或响应时对其进行拦截和修改。拦截器可以在整个应用程序中使用,用于执行跨越多个层的通用任务,如身份验证、授权、缓存、日志记录、性能计量等。 在Web开发中,拦截器通常用于在请求到达控制器之前

    2024年02月04日
    浏览(63)
  • springboot实现拦截器

    内容:继承 HandlerInterceptorAdapter 并实现 WebMvcConfigurer , 拦截器中的方法将preHandle-Controller-postHandle-affterCompletion的顺序执行。 注意:只有preHandle方法返回true时后面的方法才会执行。当拦截器链存在多个拦截器时,postHandle在所有拦截器内的所有拦截器返回成功时才会调用,而

    2024年02月02日
    浏览(48)
  • Spring/SpringBoot 拦截器

    Spring/SpringBoot 拦截器 拦截器的作用: 拦截器,可以进行请求过滤、权限管理、打印日志、数据校验等。 拦截器,可以在请求前、请求后进行处理。 代码示例: 拦截器 MyInterceptor: Spring的拦截器,需要实现 HandlerInterceptor 接口。 配置拦截器: 配置拦截器,需要实现 WebMvcConf

    2024年02月19日
    浏览(45)
  • Springboot如何配置拦截器

    在 Spring Boot 中,配置拦截器需要继承 HandlerInterceptorAdapter 类,并重写其中的 preHandle()、postHandle()、afterCompletion() 等方法。下面是一个详细的实例: 首先,我们创建一个拦截器类 MyInterceptor,继承 HandlerInterceptorAdapter 类,并在其中重写 preHandle() 方法: 其中,preHandle() 方法用于

    2024年02月13日
    浏览(46)
  • springboot 拦截器的配置

    编写拦截器 对于前后端分离架构 preHandle 会在方法执行前执行,按照拦截器顺序执行 postHandle 会在方法return前执行,按照拦截器顺序逆序执行 afterCompletion 方法return 之后执行 ,按照拦截器顺序逆序执行 拦截器注册

    2024年02月15日
    浏览(42)
  • 全面了解SpringBoot拦截器

    在本文中,我们将详细介绍SpringBoot中的拦截器,包括拦截器的概念、作用、实现方式、执行顺序、生命周期以及高级应用。最后,我们还将探讨拦截器的性能优化策略和常见问题。 拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处

    2024年02月17日
    浏览(50)
  • SpringBoot统一功能处理(拦截器)

    1.1自定义拦截器 写一个类去实现 HandlerInterceptor接口 表示当前类是一个拦截器,再 重写HandlerInterceptor接口中的方法 , preHandle 为在方法 执行前拦截 ,postHandle为方法执行中拦截,afterCompletion为方法执行中拦截.需要在什么时候拦截就重写什么方法 2.1.配置拦截规则 实现 WebMvcConfigur

    2024年02月14日
    浏览(40)
  • SpringBoot(八)拦截器Interceptor

        上篇介绍了Filter过滤器的使用,提起过滤器,就不得不再提起另外一个叫做拦截器的东西。两者的作用类似,都可以实现拦截请求的作用,但其实两者有着非常大的区别。本篇,我们就来学习下拦截器的使用。     如果你是新手,且没看过我之前的一系列SpringBoot文章,

    2024年02月17日
    浏览(43)
  • Springboot中自定义拦截器

    Spring Boot 中使用拦截器 参考:https://blog.csdn.net/taojin12/article/details/88342576?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170823498416800197050192%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257Drequest_id=170823498416800197050192biz_id=0utm_medium=distribute.pc_search_result.none-task-blog-2 all top_positive~defa

    2024年02月19日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包