Java&Spring基础技术程序员

SpringBoot定义拦截器

2018-06-02  本文已影响12人  雁归来兮

更多关于Java方面的文章,欢迎访问燕归来https://www.zhoutao123.com

Spring中定义拦截的方式和SpringMVC非常相似,只是将原本在xml中配置的文件放在Configuration注解中,从来实现注入拦截器的方式,下面我们开始代码,代码非常简单,基本流程就是定义是拦截器适配器,然后在适配器中添加自定义的拦截器示例,并配置拦截参数即可。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

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

/**
 * 本文件由周涛创建,位于com.tao.mybatis_plus.config包下
 * 创建时间2018/3/24 23:02
 * 邮箱:zhoutao@xiaodouwangluo.com
 * 作用:暂未填写
 *
 * @author tao
 */
 
 
 //定义拦截器适配器,使用Configuration注解修饰
@Configuration
public class MyHandleInterception  extends WebMvcConfigurerAdapter{

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //增加拦截器,并配置拦截的url
        registry.addInterceptor(new MyInterception()).addPathPatterns("/book/**");
        super.addInterceptors(registry);
    }
}

定义拦截器

此处和SPringMVC一模一样,要求继承HandlerInterceptor接口。其中的三个方法用处如下:

public class MyInterception implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("调用了preHandle");
        return true;
    }

    @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");
    }
}

调用接口:http://localhost:8080/book/list/1/1 的时候可以观察到一下输出,中间的橘色字体表示执行的sql语句,和拦截没有关系,另一方便也说明了postHandle和afterCompletion方法是在方法执行完成之后调用的。

image

更多关于Java方面的文章,欢迎访问燕归来https://www.zhoutao123.com

上一篇 下一篇

猜你喜欢

热点阅读