一、前言

在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. Exchange 2003 迁移至 Exchange 2010 完全攻略(二)
  2. 梁胜:做云计算,如何才能超越AWS?
  3. 为什么 wait/notify/notifyAll 在 Object 类定义而不是 Thread 类?
  4. vector拷贝复制方法
  5. jdbcType与javaType的对应关系
  6. 华为鸿蒙智慧屏评价,华为智慧屏 S真实感受曝光评测,不看后悔死了!
  7. 机器人防火墙:人机识别在应用安全及风控领域的一点实践
  8. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
  9. FastDFS安装脚本
  10. 【Linux复习——温故知新
  11. 关于ISIC数据集如何下载的问题
  12. 网易2012校园招聘笔试题目
  13. js实现中文简体繁体转换
  14. Renesas:定时器输入捕获
  15. 批量上传不同图片(网易邮箱添加附件的应用)
  16. 前端开发中常用设计模式-总结篇
  17. Ubuntu安装nvidia显卡驱动和CUDA CUDNN autoinstall
  18. 你可能无法想象我现在正在做着朝九晚五
  19. 全卷积网络(FCN)实战:使用FCN实现语义分割
  20. MyBatis-Plus代码生成器(新)3.5.2的使用

热门文章

  1. 我阅读的第一个程序GridView遇到的问题
  2. 用route命令解决Wifi和网卡不能同时上内外网问题
  3. 逻辑分析仪抓取波形参数设置
  4. Diffie-Hellman密钥交换协议
  5. 增量式爬虫与分布式爬虫
  6. 管理系统模板c语言,管理系统c语言
  7. Java Socket 客户端使用指定端口多次连接服务器引发 BindException
  8. androidstuido_schooltest_8_Network
  9. 【CTF大赛】2021 DASCTF July cybercms 一探再探
  10. 攻击 FreeIPA 域:对象枚举