springBoot之拦截器

标签: springboot
45人阅读 评论(0) 收藏 举报
分类:

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

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


 

查看评论

springboot 中拦截器的使用

SpringBoot 拦截器的使用
  • github_35169934
  • github_35169934
  • 2017-11-19 13:20:15
  • 985

SpringBoot中的拦截器的使用和配置

SpringBoot中的拦截器是常用的技能,接下来将参照一个小小的demo讲解SpringBoot中拦截器的配置和使用. 1、SpringBoot中拦截器的使用场景. 日志、登陆验证、权限等都会用...
  • zj20142213
  • zj20142213
  • 2018-01-27 21:29:20
  • 791

在SpringBoot中使用 拦截器

在 SpringBoot中使用拦截器拦截器接口 HandlerInterceptorpublic interface HandlerInterceptor { boolean preHandl...
  • w_x_z_
  • w_x_z_
  • 2017-02-23 21:38:20
  • 10573

实现SpringBoot自定义拦截器

首先我们先回顾一下传统拦截器的写法:第一步创建一个类实现HandlerInterceptor接口,重写接口的方法。第二步在XML中进行如下配置,就可以实现自定义拦截器了SpringBoot实现自定义拦...
  • htf2620032
  • htf2620032
  • 2018-02-10 15:56:08
  • 634

springBoot(六)整合之整合拦截器理解

更详细的信息可以观看 : http://blog.csdn.net/gebitan505/article/details/70142025 一般非springBoot下的拦截器都是实现Handler...
  • CoffeeAndIce
  • CoffeeAndIce
  • 2017-09-18 11:13:21
  • 742

SpringBoot如何添加拦截器

在web开发的过程中,为了实现登录权限验证,我们往往需要添加一个拦截器在用户的的请求到达controller层的时候实现登录验证,那么SpringBoot如何添加拦截器呢? 步骤如下: 1....
  • jingjingaibiancheng
  • jingjingaibiancheng
  • 2017-08-16 17:51:01
  • 2057

springboot配置拦截器,不起作用

刚在IDEA创建了一个springboot 的web项目 ,按网上配置拦截器没有效果!!! 启动springboot:run的时候加载了一次 addInterceptors(Interceptor...
  • qq_37946744
  • qq_37946744
  • 2017-12-20 11:42:49
  • 561

springboot 实现拦截器权限过滤,以及用拦截器实现操作日志功能

package com.hcmony.web.interceptor; import com.hcmony.service.auth.ValidationService; import com.h...
  • hcmony
  • hcmony
  • 2017-12-25 20:34:20
  • 490

springboot配置拦截器

2018年1月9日10:30:30 简单的记录一下。 1.自定义一个MyInterceptor 实现HandlerInterceptor package com.hll.hlladmin.con...
  • sinat_33151213
  • sinat_33151213
  • 2018-01-09 10:32:40
  • 143
    个人资料
    等级:
    访问量: 1万+
    积分: 340
    排名: 23万+
    最新评论