为了账号安全,请及时绑定邮箱和手机立即绑定

spring-boot 使用HandlerInterceptor拦截器

标签:
SpringBoot

拦截器的使用步骤:
1、编写一个拦截器,实现HandlerInterceptor接口
2、编写一个类,继承WebMvcConfigurerAdapter抽象类,将其放入Spring容器中,然后重写addInterceptors()方法,并调用给的参数InterceptorRegistry.addInterceptor()把自己编写的那个拦截器作为参数加进去。

直接贴代码:

pom.xml加入如下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

编写一个拦截器,实现HandlerInterceptor接口

public class MyHandlerInterceptor implements HandlerInterceptor {    //在Controller执行之前调用,如果返回false,controller不执行
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("---------preHandle--------");        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--------");
    }
}

HandlerInterceptor接口几个抽象方法讲解:
preHandler:在Controller执行之前调用
postHandler:controller执行之后,且页面渲染之前调用
afterCompletion:页面渲染之后调用,一般用于资源清理操作

编写一个类,继承WebMvcConfigurerAdapter抽象类,将其放入Spring容器中,然后重写addInterceptors()方法,并调用给的参数InterceptorRegistry.addInterceptor()把自己编写的那个拦截器作为参数加进去。

//@Component也可以@SpringBootConfigurationpublic class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyHandlerInterceptor());
    }
}

编写一个Controller接受请求

@RestControllerpublic class WebController {    @GetMapping("/login")    public String login() {
        System.out.println("-----login------");        return "login";
    }
}

springboot启动类

@SpringBootApplicationpublic class BlogApplication {    public static void main(String[] args) {
        SpringApplication.run(BlogApplication.class, args);
    }
}

浏览器访问:http://localhost:8080/login

控制台结果

webp

console result

ok,以上就是spring-boot 使用HandlerInterceptor拦截器的全部内容。有兴趣的读者可以持续关注笔者的springboot系列文章。



作者:八目朱勇铭
链接:https://www.jianshu.com/p/fa312c22dd0b


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消