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容器中!

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


 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzxwx/article/details/79948603
文章标签: springboot
个人分类: springboot 拦截器
上一篇springboot入门之helloworld
下一篇springboot之热部署
想对作者说点什么? 我来说一句

springboot拦截器

2018年06月08日 2KB 下载

没有更多推荐了,返回首页

关闭
关闭