过滤器、拦截器、AOP、ControllerAdvcie的使用对比、执行顺序及代码教程
文章目录
- 前言
- 过滤器Filter
- 简介
- 使用方法
- 代码实现
- 测试
- 拦截器Interceptor
- 简介
- 使用方法
- 代码实现
- 测试
- ControllerAdvice
- 简介
- 使用方法
- 代码实现
- 测试
- AOP
- 简介
- 使用方法
- 代码实现
- 测试
- 四者的执行顺序
- 结论
- 总结
前言
本文适合有一定基础的同学,在已有的认识基础上对这四块的知识做一个总体的对比。
本文基于SpringBoot项目进行讲解,所有的代码都是在已经搭好SpringBoot的基础上进行编写的,SpringBoot版本为2.7.3。
该项目所有的代码都已经上传到我的GitHub仓库:https://github.com/stick-i/Filter_Interceptor_AOP_Advcie
也可以到我上传的资源文件中0积分免费下载(但不能保证代码为最新版):https://download.csdn.net/download/little_stick_i/86509908
过滤器Filter
简介
- 来自J2EE中的Servlet技术
- 实现原理:基于servlet的函数回调实现
- 只可以获取到请求中的request和response,无法获取到响应方法的信息
- 可以拦截所有请求
- 支持使用xml配置和注解配置
- 应用场景:权限认证、敏感词检测、访问日志记录等
使用方法
实现
Filter
接口,重写doFilter
方法;放行请求时调用
chain.doFilter()
方法;启用该过滤器,有三种方式,一种是比较原始的xml配置,这我就不写了,需要的同学请查看其它人的文章。
第二种是使用注解
@WebFilter()
,并在启动类上添加@ServletComponentScan
注解使用。第三种是直接使用
@Component
注解,这样的话@WebFilter配置的路径会失效,因为@WebFilter根本就没生效,不信自己去试试过滤器、拦截器、AOP、ControllerAdvcie的使用对比、执行顺序及代码教程相关推荐
- SpringBoot的过滤器拦截器AOP和异常处理器
目录 前言 过滤器 创建过滤器 拦截器 创建拦截器 配置拦截器 AOP 创建AOP 异常处理器 创建异常处理器 测试请求的执行过程 创建接口 发送请求 前言 过滤器.拦截器.AOP.异常处理器是搭建系 ...
- 拦截器HandlerInterceptor、ResponseBodyAdvice和@ExceptionHandler执行顺序
HandlerInterceptor接口结构: ResponseBodyAdvice接口结构 执行顺序: 1.HandlerInterceptor.preHandle() 2. 业务方法 3.@Exc ...
- Spring关于AOP中关于advice的执行顺序
AOP的核心概念 要完全理解Spring AOP首先要理解AOP的核心概念和术语,这些术语并不是Spring指定的,而且很不幸,这些术语并不能直观理解,但是,如果Spring使用自己的术语,那将更加令 ...
- 【Spring Boot入门】AOP基础及Advice的执行顺序
本文主要分为两个部分,首先介绍AOP的基础,包括为什么要使用AOP以及AOP中的基本概念,然后讲解AOP中各类Advice的执行顺序并给出简单示例. 一.AOP基础 1.为什么要使用AOP AOP(A ...
- 过滤器 拦截器 区别
转 http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过 ...
- java web 过滤器 拦截器 监听器_Java中的拦截器和过滤器,可不是同一个东西
过滤器(Filter) 过滤器就如上面的水质过滤器一样,把管道中的水进行一遍过滤再使用.过滤器基于filter接口中的doFilter回调函数,主要的用途是设置字符集.控制权限.控制转向.做一些业务逻 ...
- Spring Boot 系列:过滤器+拦截器+监听器
原 Swagger 文章合并到 Spring Boot 系列:配置 Swagger2 一.过滤器 - Filter 过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请 ...
- 使用拦截器和redis+token实现防重复提交完整代码
文章目录 redis配置: 自定义一个注解: 自定义类继承HandlerInterceptor mvc添加刚刚自定义的拦截器使之生效 tokenservice controller redis配置: ...
- java mybatis拦截配置_SpringMvc拦截器配置_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对象.分派器以及处理程序对象 ...
最新文章
- C语言:画一个爱心 送女票
- 每周一荐:foobar2000, 奇幻人生, 一个Flash小游戏
- PYTHON之DEF
- Minimax Problem(二分+二进制状态压缩)
- [TimLinux] Python 迭代器(iterator)和生成器(generator)
- AsyncToken模式替换通用的Listener模式
- Spark Streaming之Kafka的Receiver和Direct方式
- iphone录屏没内部声音_6个iPhone隐藏功能,让你的手机好用到飞起
- Python+pandas+matplotlib控制不同曲线的属性
- underscore.js依赖库函数分析一(遍历)
- QTcpSocket
- linux下国产达梦数据库的命令行安装
- Paypal移动快速支付流程
- python中的IO操作
- mybatis中大于小于号转义字符
- python_习题练习_5_小游戏《唐僧大战白骨精》
- A ConvNet for the 2020s
- 如何把网页传到云服务器,将网页传到云服务器
- 困在赛博世界里的“仿生机器人”
- backtrack 4 安装vm-tool
热门文章
- 各省、地级市-2020春运期间高德地图人口迁徙数据-excel、shp格式
- prometheus使用 (四) 瞬时向量与区间向量
- 将两台交换机虚拟化为一台设备的操作过程(VSU)锐捷设备
- python画心电图_基于MicroPython:TPYBoard心率监测器
- 六、Web服务体系结构
- 金山毒霸服务器2008系统,金山毒霸可以在服务器系统上安装吗
- 信号塔机房有服务器吗,通信铁塔及机房知识
- 装机大师无法发现linux硬盘,华硕电脑进PE系统找不到硬盘的解决办法
- 用计算机制作微课教学教案,微课应用于计算机教学
- 溯源系统溯源码的生成方法
- SpringBoot的过滤器拦截器AOP和异常处理器