Springboot拦截器的开发

  1. 拦截器的作用
    作用:将多个Controller中共有的代码放在拦截器中执行,从而减少controller中代码的冗余。
  2. 拦截器的特点
    1. 请求到达经过拦截器 响应回来经过拦截器
    2. 拦截器中断用户的请求轨迹
    3. 拦截器只能拦截控制器相关请求路径
  3. springboot中拦截器开发步骤
    1. @Component
    类MyInterceptor implements HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("==========1============");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("=================3=============");
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("=================4=============");
    }
  1. 配置拦截器
    需要配置拦截器那些请求路径即可
@Component
public class InterceptorCongig extends WebMvcConfigurerAdapter {

    @Autowired
    private MyInterceptor myInterceptor;

    @Override//用来在web环境下添加自定义拦截器配置
    public void addInterceptors(InterceptorRegistry registry) {
           registry.addInterceptor(myInterceptor)//指定拦截器实例
                   .addPathPatterns("/**")//用来指定那些请求
                   .excludePathPatterns("file/upload"); //用来排除那些请求
    }

注意:在springboot中拦截器的请求路径书写必须为/**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章