Spring Boot统一功能处理(一)

本文详细介绍了SpringBoot中的拦截器工作原理,包括基本使用方法、实战配置示例,以及源码层面的浅尝,涉及DispatcherServerlet初始化、适配器模式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要介绍Spring Boot的统一功能处理中的拦截器。

目录

一、拦截器的基本使用

二、拦截器实操

三、浅尝源码

初始化DispatcherServerlet

处理请求(doDispatch)

四、适配器模式


一、拦截器的基本使用

在一般的学校或者社区门口,通常会安排几个保安大爷来进行身份验证,只有身份符合要求的人才会被放行,否则则会被大爷拦住,而拦截器就像我们程序的保安大爷,只有通过我们自己定义的拦截规则,请求才能被放行到目标接口上。

下面我们来看看如何在Spring Boot中使用拦截器 

 在项目中设置拦截,我们需要先自己定义一些拦截器,里面包含一些具体的拦截规则,定义拦截器的代码如下:

(1)首先创建一个拦截类,通常以“Interceptor”作为类名的后半部分,这里我们定义一个LoginInterceptor类,意为与登录相关的拦截器,然后让该类实现一个HandlerInterceptor接口,具体如下:

@Component
public class LoginInterceptor implements HandlerInterceptor {

}

(2)重写三个方法:

 @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
       
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
       
    }

其中preHandle为在目标方法执行前要执行的方法,其返回值如果为true,则会被放行去执行目标方法,为false则拦截,我们可以在这个方法里根据需求定义拦截规则。postHandle为目标方法执行后要执行的方法。afterCompletion为最后视图渲染完后最后执行的方法(由于现在都是前后端分离了,后端一般不处理视图,因此这个方法不需要过多了解)。

定义好拦截器后我们还需要配置拦截器,具体配置流程如下:

(1)创建配置类(一般以Config结尾,这里以为WebConfig),实现WebMvcConfigurer接口:

public class WebConfig implements WebMvcConfigurer {
}

(2)然后重写addInterceptor方法

@Override
    public void addInterceptors(InterceptorRegistry registry) {
        
    }

(3)然后我们在里面添加我们需要配置的拦截器,具体如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值