一、前言

在javaee中,我们经常使用filter来做拦截器,后来有了springmvc,我们使用HandlerInterceptor进行拦截,springmvc的拦截器查看这篇文章,现在有了springboot,我们使用HandlerInterceptor进行拦截,但是我们不用xml的配置,省了很多的事情。

二、springboot拦截器使用

1、设置拦截器
/*** @author 欧阳思海* @date 2018/7/26 10:08* 拦截器测试*/
public class TestInterceptor implements HandlerInterceptor {//目标方法执行之前@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception {if(true){System.out.println("已经进行拦截了。。。。。。。。");return false;}return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Objecthandler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object handler, Exception ex) throws Exception {}}

这里如果拦截成功,会输出:

已经进行拦截了。。。。。。。。
2、拦截器注册

在springmvc的时候,我们这里使用的是xml进行配置的,但是,在springboot中,我们使用java配置,具体用法如下:

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
//@EnableWebMvc   不要接管SpringMVC
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {//注册拦截器2@Overridepublic void addInterceptors(InterceptorRegistry registry) {/*addPathPatterns 用于添加拦截规则excludePathPatterns 用户排除拦截*/registry.addInterceptor(new TestInterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html", "/", "/user/login");}
}

解释:

上面拦截器的注册,首先,我们使用addPathPatterns("/**")添加了所有的都拦截。

然后,在使用excludePathPatterns("/index.html", "/", "/user/login")index.html和/user/login两个url设置不拦截。

注意注册时的区别

registry.addInterceptor(getInterfaceAuthCheckInterceptor()).addPathPatterns("/api/**"):这种方式无论什么情况都可以

registry.addInterceptor(new InterfaceAuthCheckInterceptor()).addPathPatterns("/api/**"):这种情况时,自定义的interceptor中不能注入其他内容,比如redis或者其他service,如果要注入,必须使用上面这种方法

下面我们写个controller进行测试。

3、controller测试
/*** @author 欧阳思海* @date 2018/7/25 9:57*/
@Controller
public class HelloworldController {@ResponseBody@RequestMapping("/hello")public String hello(){return "Hello World!";}
}

这里我们在浏览器输入:http://localhost:8080/test

后台输出结果:

已经进行拦截了。。。。。。。。

拦截器使用完毕!

玩转springboot:实现springboot自定义拦截器相关推荐

  1. SpringBoot中自定义拦截器

    场景 自定义拦截器,通过继承WebMvcConfigureAdapter然后重写父类中的方法进行扩展. 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZH ...

  2. 【学习】SpringBoot之自定义拦截器

    /*** 自定义拦截器**/ @Configuration//声明这是一个拦截器 public class MyInterceptor extends WebMvcConfigurerAdapter ...

  3. springboot+shiro自定义拦截器互踢问题

    shiro自定义拦截器继承AccessControllerFilter,实现session互踢机制. 应用场景: 我们经常会有用到,当A 用户在北京登录 ,然后A用户在天津再登录 ,要踢出北京登录的状 ...

  4. SpringBoot从零单排 ------ 拦截器的使用

    在项目开发中我们常常需要对请求进行验证,如登录校验.权限验证.防止重复提交等等,通过拦截器来过滤请求.自定义一个拦截器需要实现HandlerInterceptor接口. 代码如下: import or ...

  5. SpringBoot中文件下载、拦截器、war包部署、jar包部署

    3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...

  6. 在SpringBoot项目中整合拦截器

    拦截器在Web系统中非常常见,对于某些全局统一的操作,我们可以把它提取到拦截器中实现.总结起来,拦截器大致有以下几种使用场景: 1.权限检查:如登录检测,进入处理程序检测用户是否登录,如果没有,则直接 ...

  7. springBoot之过滤器和拦截器的使用

    在springBoot中,过滤器和拦截器的使用. 过滤器 概述 过滤器是什么? 简单的来说,过滤器就是过滤的作用,在web开发中过滤一些我们指定的url. 过滤器主要做什么? 过滤掉一些不需要的东西, ...

  8. springboot中配置了拦截器后,拦截器无效的解决方案之一

    springboot中配置了拦截器后,拦截器无效的解决方案之一 参考文章: (1)springboot中配置了拦截器后,拦截器无效的解决方案之一 (2)https://www.cnblogs.com/ ...

  9. springboot-2.2.5中自定义拦截器、静态资源映射、视图控制器和其他功能

    在spring-boot-2.2.5中对MVC自动配置类进行的更改,之前的WebMvcConfigurerAdapter类声明为过时的,现在进行自定义扩展需要实现WebMvcConfigurer类重写 ...

  10. Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)

    Hadoop生态圈-Flume的组件之自定义拦截器(interceptor) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是举例了一个自定义拦截器的方法,测试字节传输速 ...

最新文章

  1. web前端【第九篇】JS的DOM对象三
  2. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧(三.1. 本练习机的规划--尤其是分割参数)
  3. mac安装nvm及换源及node安装切换
  4. 软件体系结构设计文档_一个java架构师是如何设计出一个好的架构的
  5. php mysql登陆页面完整代码_求助:PHP实现登陆注册的代码是什么啊(主要是数据库那块)?...
  6. 做骨龄检测_小柚熊:骨龄测试最佳年龄
  7. 理解java虚拟机有什么用_java虚拟机的作用是什么?我们为什么要用虚拟机?
  8. 不用写代码的可视化大屏,一口气把工具和方法都教给你
  9. 17 款可视化工具,让你的数据更美观!
  10. EasyPR如何添加绿牌C++版
  11. mac终端链接阿里云服务器
  12. 游戏服务器架构,配置
  13. 树莓派RaspberryPi Zero W 快速安装tips
  14. Matlab c2d离散用法
  15. 微信小程序动态倒计时
  16. 安卓系列之 kotlin 项目实战--基础 demo
  17. 【算法导论】生日悖论
  18. 向量法计算多边形面积
  19. 更改mui框架默认弹框样式,位置
  20. 深度学习网络结构图绘制工具及方法

热门文章

  1. 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?...
  2. 我想用keil5生成BIN文件,可是安装目录下找不到fromelf.exe
  3. 用SVC模型完成对手写数字的分类
  4. Keras实现seq2seq案例代码:Bi-LSTM
  5. C++ Primer 5th笔记(chap 13 拷贝控制)移动构造和移动赋值
  6. sql注入——day02
  7. 初识 java(简单易懂入门篇)
  8. RabbitMQ面试题及答案
  9. c/c++ typedef定义函数指针(Hook前奏2)
  10. ubuntu: Authentication failure的解决办法