美文网首页
springboot 2.0 拦截器

springboot 2.0 拦截器

作者: symphony_2a29 | 来源:发表于2018-04-24 13:57 被阅读0次

当 springBoot 的版本从1.x 升级到 2 之后WebMvcConfigurerAdapter就发现这个抽象类已经过时了,因此才用以下2种写法

@Component

public class WebMvcConfg implements WebMvcConfigurer {

    @Override

    public void addInterceptors(InterceptorRegistry registry) {

        registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/user/*");

}

}

@Component

public class WebMvcConfg extends  WebMvcConfigurationSupport {

    @Override

    public void addInterceptors(InterceptorRegistry registry) {

        registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/user/*");

    }

因为第二种不兼容1.x版本,于是变采用了第一种写法。

拦截器代码

@Configuration

public class SessionInterceptor implements HandlerInterceptor {

    /**

    * controller 执行之前调用

    */

    @Override

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

            throws Exception {

        System.out.println("------preHandle-----");

        System.out.println(handler);

        System.out.println(handler.getClass());

        return true;

}

    /**

    * controller 执行之后,且页面渲染之前调用

    */

    @Override

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

                          ModelAndView modelAndView) throws Exception {

        System.out.println("------postHandle-----");

}

    /**

    * 页面渲染之后调用,一般用于资源清理操作

    */

    @Override

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

            throws Exception {

        System.out.println("------afterCompletion-----");

}

}

测试结果:

根据打印结果发现,拦截有两种方式,method方法拦截和resource资源拦截,访问controller里面是方法拦截,直接访问static里面文件图片是资源拦截,spring5.0版本2种拦截已经整合

因此可以指定拦截的路径,防止拦截静态资源,也可以排除静态资源路径,只拦截方法

registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/user/*");

或者

registry.addInterceptor(new SessionInterceptor())..excludePathPatterns("/static/*");

相关文章

网友评论

      本文标题:springboot 2.0 拦截器

      本文链接:https://www.haomeiwen.com/subject/sjqjlftx.html