SpringBoot整合WEB开发--(七)注册拦截器

自闭症网瘾萝莉.ら 提交于 2020-02-18 18:39:42

  1.创建一个拦截器类实现HandlerInterceptor接口,重写其中的3个方法,这拦截器中方法的执行顺序为:preHandle--Controller--postHandle--afterCompletion,只有preHandle返回true,才会继续向下执行,多个拦截器形成拦截器链,如果第一个preHandle返回false,则后面的方法都不会执行。

public class MyInterceptor1 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler){
        System.out.println("MyInterceptor1>>>preHandle");
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request,
                           HttpServletResponse response,
                           Object handler,
                           ModelAndView modelAndView){
        System.out.println("MyInterceptor1>>>postHandle");
    }
    @Override
    public void afterCompletion(HttpServletRequest request,
                                HttpServletResponse response,
                                Object handler,
                                Exception ex){
        System.out.println("MyInterceptor1>>>afterCompletion");
    }
}

2.配置拦截器

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {//拦截器名
        registry.addInterceptor(new MyInterceptor1())
//拦截路径                .addPathPatterns("/**")
//排除路径                .excludePathPatterns("/hello");
    }
}

3.controller·

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

    @GetMapping("/hello2")
    public String hello2() {
        return "hello2";
    }
}

 

 

 

 

 

 则没有被拦截,被排除在外

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!