springBoot之拦截器

1.根传统的spring项目一样 我们需要定义自己的拦截器的话。要实现 HandlerInterceptor

接口或者继承对应的类也可以。重写父类的方法

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

此方法在拦截action之前掉用 如果返回true 则允许通过 返回false则不执行action方法

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)

此方法在请求之后,渲染视图之前调用

根据你的业务需求来重写不同的方法

2.定义自己的拦截器

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor{

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //拦截请求action方法之前调用 true可以继续执行。false不能继续执行
        System.out.print("=========preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        //请求之后调用 但是在视图渲染之前调用
        System.out.print("=========postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        //整个请求结束之后被调用
        System.out.print("=========afterCompletion");
    }
}

这个是我的代码逻辑

3.定义Config 来注册对应的拦截器。相当于在springMVC中用xml标签引入拦截器

  由于我的版本过高 对于WebMvcConfigurerAdapter 已经过期所以继承

 WebMvcConfigurationSupport

/**
 * WebMvcConfigurerAdapter 已经过期 此处继承WebMvcConfigurationSupport
 * @Configuration 注解相当于定义了一个xml 文件 一般里面的方法 用@Bean 表示一个xml
 * 中的bean 也就是spring的IOC 容器的意思,这样就好理解 
 */
@Configuration
public class WebConfig extends WebMvcConfigurationSupport{

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        /** 任何请求都会拦截 但是会排出掉 login 的请求 **/
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/login");
        super.addInterceptors(registry);
    }
}

注解@Configuration 相当于是一个xml文件 继承 WebMvcConfigurationSupport 重写addInterceptors

加入自己的拦截器逻辑即可!

SpringBoot在启动的时候会扫描到该注解并且初始化到IOC容器中!

测试访问会调用拦截器中的逻辑!


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你微笑莳很美丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值