返回顶部
首页 > 资讯 > 后端开发 > JAVA >一张思维导图带你打通SpringBoot自定义拦截器的思路
  • 708
分享到

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

springboot后端java 2023-08-18 10:08:51 708人浏览 八月长安
摘要

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

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


在这里插入图片描述


思维导图

在这里插入图片描述

🌟前言

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

🌟前置知识

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

🌟具体实现步骤

定义拦截器类

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

API介绍

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

方法名方法签名作用
preHandleboolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception目标处理器执行之前被调用。可以进行一些前置处理逻辑,如权限验证、日志记录等。返回值决定请求是否继续执行后续流程,true表示继续执行,false表示中断请求处理。
postHandlevoid postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception目标处理器执行之后、视图渲染之前被调用。可以对响应结果进行一些后置处理,如添加公共数据、修改视图等。此时可以对目标处理器的执行结果进行修改。
afterCompletionvoid 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方法,进行拦截器的注册。
@Configurationpublic class TestInterceptorConfig implements WebMvcConfigurer {    @Bean    public TestInterceptor testInterceptor(){        return new TestInterceptor();    }    @Override    public void addInterceptors(InterceptorReGIStry registry) {        registry.addInterceptor(testInterceptor()).addPathPatterns("/test格式。 

🌟写在最后

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


请添加图片描述

来源地址:https://blog.csdn.net/2302_79094329/article/details/132017966

--结束END--

本文标题: 一张思维导图带你打通SpringBoot自定义拦截器的思路

本文链接: https://lsjlt.com/news/373840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作