一张思维导图带你打通SpringBoot自定义拦截器的思路

这篇具有很好参考价值的文章主要介绍了一张思维导图带你打通SpringBoot自定义拦截器的思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战


一张思维导图带你打通SpringBoot自定义拦截器的思路,SpringBoot实战,spring boot,后端,java


思维导图

一张思维导图带你打通SpringBoot自定义拦截器的思路,SpringBoot实战,spring boot,后端,java

🌟前言

在开发中,都离不开拦截器的使用。比如说在开发登录功能时,采用JWT登录时通过对token进行验证实现登录拦截的功能;实现权限管理功能时,通过对角色权限的拦截实现权限功能。下面带你使用SpringBoot梳理自定义拦截器的思路。

🌟前置知识

@Configuration:用于标识一个全局配置类。注册到spring容器中,相当于xml配置时的beans标签。
@Bean:用于标识全局配置类中的自定义拦截方法上,进行拦截对象的创建,方便后续注册。

🌟具体实现步骤

定义拦截器类

自定义拦截器类:负责定义拦截的处理逻辑,包含前置拦截、后置拦截和最终拦截。以下是对其API的介绍。

API介绍

在方法参数中,HttpServletRequest代表客户端的请求,HttpServletResponse代表返回给客户端的响应。Object handler是目标处理器(如控制器方法)的实例,ModelAndView用于传递模型数据和视图名称。

方法名 方法签名 作用
preHandle boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception 目标处理器执行之前被调用。可以进行一些前置处理逻辑,如权限验证、日志记录等。返回值决定请求是否继续执行后续流程,true表示继续执行,false表示中断请求处理。
postHandle void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception 目标处理器执行之后、视图渲染之前被调用。可以对响应结果进行一些后置处理,如添加公共数据、修改视图等。此时可以对目标处理器的执行结果进行修改。
afterCompletion void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception 整个请求处理完毕后被调用。可以进行一些清理工作,如资源释放、日志记录等。无法改变响应结果。

思路

  • 创建拦截器类TestInterceptor并实现HandlerInterceptor。
  • 根据其对应的API结合业务,在对应方法上实现相应的处理逻辑。
public class TestInterceptor implements HandlerInterceptor {
    //前置处理器。进入到Controller层方法之前执行
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //TODO 前置拦截的处理逻辑
        //1.判断用户是否登录,登录返回true
        return HandlerInterceptor.super.preHandle(request, response, handler);
    }
    //后置处理器。视图渲染之前执行的方法,对响应结果进行处理。
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        //TODO 后置拦截的处理逻辑
        //添加某些数据等等
        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
    }
    //最终处理器。整个请求完成之后执行。
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        // TODO 最终拦截处理器
        //1.记录日志
        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
    }
}

定义拦截器配置类

拦截器配置类:负责注册相应的拦截器。

思路

  • 创建拦截器配置类。并用@Configuration标识、实现WebMvcConfigurer接口。
  • 创建生成拦截器对象的方法。并用@Bean标识。方便拦截器的注册。
  • 实现addInterceptors方法,进行拦截器的注册。
@Configuration
public class TestInterceptorConfig implements WebMvcConfigurer {
    @Bean
    public TestInterceptor testInterceptor(){
        return new TestInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(testInterceptor()).addPathPatterns("/test/**");
        WebMvcConfigurer.super.addInterceptors(registry);
    }
}

🌟拦截器失效

如果发生拦截器没有生效,可以按照以下思路进行检查:

  • 拦截器配置类是否添加@Configuration。
  • 拦截的是接口地址,地址末尾则为/**格式。
  • 拦截的是目录地址,地址则为/*/格式。

🌟写在最后

有关于SpringBoot自定义拦截器的内容到此就结束了。感谢大家的阅读,此文只是打通思路,有关拦截器的具体实战,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。
如果觉得此文对你有用,可以留个关注哟!会持续更新更多优质内容。


一张思维导图带你打通SpringBoot自定义拦截器的思路,SpringBoot实战,spring boot,后端,java文章来源地址https://www.toymoban.com/news/detail-625279.html

到了这里,关于一张思维导图带你打通SpringBoot自定义拦截器的思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 日常开发项目上线或者部署个人博客网站,都离不开线上服务器部署应用。本文带你学会线上部署应用。

    2024年02月14日
    浏览(61)
  • 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)
  • SpringBoot自定义拦截器interceptor使用详解

    Spring Boot拦截器Intercepter详解 Intercepter是由Spring提供的Intercepter拦截器,主要应用在日志记录、权限校验等安全管理方便。 使用过程 1.创建自定义拦截器,实现HandlerInterceptor接口,并按照要求重写指定方法 HandlerInterceptor接口源码: 根据源码可看出HandlerInterceptor接口提供了三个

    2024年02月13日
    浏览(38)
  • SpringBoot定义拦截器+自定义注解+Redis实现接口防刷(限流)

    在拦截器Interceptor中拦截请求 通过地址+请求uri作为调用者访问接口的区分在Redis中进行计数达到限流目的 定义参数 访问周期 最大访问次数 禁用时长 代码实现 定义拦截器:实现HandlerInterceptor接口,重写preHandle()方法 注册拦截器:配置类实现WebMvcConfigurer接口,重写addIntercep

    2024年02月05日
    浏览(59)
  • Springboot 自定义 Mybatis拦截器,实现 动态查询条件SQL自动组装拼接(玩具)

    ps:最近在参与3100保卫战,战况很激烈,刚刚打完仗,来更新一下之前写了一半的博客。 该篇针对日常写查询的时候,那些动态条件sql 做个简单的封装,自动生成(抛砖引玉,搞个小玩具,不喜勿喷)。 来看看我们平时写那些查询,基本上都要写的一些动态sql:   一个字段

    2024年02月12日
    浏览(48)
  • springboot在自定义拦截器中使用@Value获取值失败及@RefreshScope 不生效问题

    @RefreshScope注解用于标识在服务配置中心配置更新时,当前 Bean 需要重新注入以获取最新的配置值。但是在这段代码中,@RefreshScope注解标注在拦截器类上,并不会使拦截器实例重新注入。 通常情况下,拦截器是在应用程序启动时由 Spring Framework 实例化和初始化的,而不是在请

    2024年02月04日
    浏览(47)
  • SpringBoot中接口幂等性实现方案-自定义注解+Redis+拦截器实现防止订单重复提交

    SpringBoot+Redis+自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数): SpringBoot+Redis+自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数)_redis防刷_霸道流氓气质的博客-CSDN博客 以下接口幂等性的实现方式与上面博客类似,可参考。 什么是幂等性? 幂等

    2024年02月15日
    浏览(55)
  • 一张流程图带你学会SpringBoot结合JWT实现登录功能

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 JWT(JsonWebToken)是 一种轻量级的跨域身份验证解决方案 。通常被用于无状态身份验证机制,将用户信息签名

    2024年02月11日
    浏览(80)
  • 一张图带你学会入门级别的SpringBoot实现文件上传、下载功能

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 标题 一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码) 一张思维导图带你学会Springboot创

    2024年02月12日
    浏览(78)
  • 一张图带你看完图论第五章(包含全部考点,含定义、定理、公式、推导证明和所有例题)

    付费大佬可以联系我把你们加入思维导图协作,看更加具体清楚地思维导图/敬礼 5.1 匹配 匹配(边独立集)M是G的不相邻边组成的边子集(无环) 饱和点 v是匹配M中某边的端点,则称v为M饱和点 完美匹配 G中每个顶点均为M饱和点,则M为G的完美匹配 最优匹配 在赋权完全偶图

    2024年02月09日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包