Spring AOP、拦截器、过滤器的区别

2023-11-19

一:区别与概念
Filter过滤器:拦截web访问url地址。
Interceptor拦截器:拦截以 .action结尾的url,拦截Action的访问。
Spring AOP拦截器:只能拦截Spring管理Bean的访问(业务层Service)

概念:
Spring AOP:
Spring AOP,是AOP的一种实现,使用的是代理模式。
Filter:
Filter(过滤器)是J2EE的规范,Servlet2.3开始引入/实现的是职责链模式。Filter可以用来设置字符集、控制权限、控制转向等等。Filter也是AOP的一种实现。
Interceptor:
Interceptor (拦截器),是Spring MVC中的概念。同样是AOP的一种实现。

二:Filter与Interceptor联系与区别

  1. 拦截器是基于java的反射机制,使用代理模式,而过滤器是基于函数回调。
  2. 拦截器不依赖servlet容器,过滤器依赖于servlet容器。
  3. 拦截器只能对action起作用,而过滤器可以对几乎所有的请求起作用(可以保护资源)。
  4. 拦截器可以访问action上下文,堆栈里面的对象,而过滤器不可以。
  5. 执行顺序:过滤前-拦截钱-Action处理-拦截后-过滤后。

三:拦截器和过滤器的区别
1、拦截器是基于Java的反射机制,过滤器是基于java的函数回调
2、拦截器不依赖于servlet容器,而过滤器依赖于servlet容器
3、拦截器只能对action请求起作用,过滤器几乎对所有的请求起作用
4、拦截器可以访问action上下文,值栈里的对象,而过滤器不能访问
5、在action生命周期中,拦截器可以被多次调用,过滤器只能在servlet溶初始化是调用一次
6、拦截器可以获取IOC容器中的各个bean,过滤器不行,在拦截器中注入一个service可以调用逻辑业务

参考:https://blog.csdn.net/qq_22169603/article/details/106236694
转载:https://www.cnblogs.com/yanghongfei/p/8507632.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring AOP、拦截器、过滤器的区别 的相关文章

随机推荐

  • window10在vscode中配置conda出错解决办法

    Windows 10 VSCode激活conda虚拟环境失败解决方案 CommandNotFoundError Your shell has not been 码农家园
  • VS 2022使用报错(一)

    1 NET框架不兼容 发生背景 博主最近打开同事的源代码发现许多引用都无效了 中间我尝试删除了这些引用 在重新添加引用的时候都找不到这些了 最后发现是解决方案里面没有配置 NET框架 问题解决 配置 NET框架 右键项目属性 在目标框架里面
  • python搭建ip池(多线程)

    之前有讲过怎么搭建ip池 但由于单线程的效率太低 于是我们升级改造一下 将单线程变成多线程来搭建ip池 之前的方法可以参考一下 python搭建ip池 如果会简单的request和提取文字就可以直接不看 本文将会重点放在多线程的部分 过程分
  • 微软个人云端服务器在哪里找,云端的服务器在哪里

    云端的服务器在哪里 内容精选 换一换 智能边缘平台 Intelligent EdgeFabric 通过纳管用户的边缘节点 提供将云上应用延伸到边缘的能力 联动边缘和云端的数据 同时 在云端提供统一的边缘节点 应用监控 日志采集等运维能力 为
  • python基础:面向对象一些简单案例:计算圆的面积和周长,烤羊肉串

    1 计算圆的面积和周长 from math import pi class Circle def init self r self r r def zhouchang self return 2 pi self r def area sel
  • shell编程计算1-1000中所有3或5的倍数之和

    bin bash sum 0 int 1 while int lt 1000 do if int 3 0 int 5 0 then sum sum int fi let int done echo sum bin bash sum 0 fo
  • Spring Security 自定义用户认证

    一 PasswordEncoder 在 Configuration注解的类下注入bean import org springframework security crypto bcrypt BCryptPasswordEncoder imp
  • C++ 数据类型

    使用编程语言进行编程时 需要用到各种变量来存储各种信息 变量保留的是它所存储的值的内存位置 这意味着 当创建一个变量时 就会在内存中保留一些空间 可能需要存储各种数据类型 比如字符型 宽字符型 整型 浮点型 双浮点型 布尔型等 的信息 操作
  • AI绘图实战(六):制作一张庆祝五一劳动节的海报

    S AI能取代设计师么 I 至少在设计行业 目前AI扮演的主要角色还是超级工具 要顶替 除非甲方对设计效果无所畏惧 预先学习 安装及其问题解决参考 Windows安装Stable Diffusion WebUI及问题解决记录 运行使用时问题
  • JUMPSERVER+ZABBIX二次开发

    未完待续 1 apps assets models assets py 添加字段 zabbix group id models IntegerField null True blank True verbose name Zabbix Gr
  • Rust对文件的操作

    一 文件IO操作 在类unix系统中 一切都是文件 所以说广义的文件操作 其实包括很多 Socket 管道 内存映射等等 其实文件操作无论怎么变化 主流仍然是对外设的访问 计算机本身的组成 是一系列的硬件整合在一起的 单纯的只有CPU和内存
  • WSL 2是什么

    Windows Subsystem for Linux WSL 适用于 Linux 的 Windows 子系统是微软在Windows 10上提供的一项供用户快速运行Linux命令和工具的功能 相比前一代的WSL WSL 2提供更全的兼容性
  • 【vue2】vue2中引入jquery

    文章目录 安装 main js中引用 修改webpack配置 把以下三步做好 就不会出现 jquery is not define 的问题了 安装 npm i jquery S main js中引用 import from jquery V
  • 918. 环形子数组的最大和

    918 环形子数组的最大和 难度中等192 给定一个由整数数组 A 表示的环形数组 C 求 C 的非空子数组的最大可能和 在此处 环形数组意味着数组的末端将会与开头相连呈环状 形式上 当0 lt i lt A length 时 C i A
  • Docker安装RabbitMQ docker安装RabbitMQ完整详细教程

    Docker安装RabbitMQ docker安装RabbitMQ完整详细教程 Docker 上安装 RabbitMQ 3 12 的步骤 选择要安装的RabbitMQ 版本 1 拉取 RabbitMQ 镜像 2 创建并运行容器 3 Rabb
  • H5移动端便捷兼容测试方式

    一 准备 1 谷歌浏览器 2 H链接 3 主流设备分辨率 尺寸 二 步骤 1 打开F12 选择手机模式 2 看顶部设备信息 点击 县级弹窗最底部的edit进入编辑模式 3 添加想要测试的设备 设备的宽高需要按照手机的分辨率和像素值计算 以i
  • Oracle的三种高可用集群方案

    转载自 http www cnblogs com baiboy p orc2 html label1 Oracle的三种高可用集群方案 1 RAC Real Application Clusters 多个Oracle服务器组成一个共享的Ca
  • Java 基本数据类型之间的运算规则

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 这里只讨论七种基本数据类型变量间的运算 不包含boolean类型的 1 自动类型提升 结论 当容量小的数据类型的变量与容量大的数据
  • 水果识别系统-tensorflow项目

    介绍 水果识别系统 可识别15种水果 人工智能 机器学习 模式识别项目 编程语言Python 基于tensorflow机器学习库通过卷积神经网络对数据集进行训练 经过多次迭代训练得到模型 预测精度达到99 技术栈 python tensor
  • Spring AOP、拦截器、过滤器的区别

    一 区别与概念 Filter过滤器 拦截web访问url地址 Interceptor拦截器 拦截以 action结尾的url 拦截Action的访问 Spring AOP拦截器 只能拦截Spring管理Bean的访问 业务层Service