Spring中拦截器重复注册的问题排查

news2025/1/12 3:49:31

注册器JpushInterceptor

功能:新版的Java推送服务,将部分请求转发到老版node

查看日志发现拦截器日志重复

同一个链路,发现,经过同一个拦截器两次
image.png

debug发现注册器重复注册

image.png

第一个通过registry.addInterceptor注册

是通过WebMvcConfigurer的钩子注册的
在这里插入图片描述

第二个通过bean类型中注册

因为使用了op3(公司内部对Spring二次开发的),版本:3.2.3.RELEASE

通过@Component将JpushInterceptor声明为了Spring Bean
在这里插入图片描述

OpWebAutoConfiguration通过beanType将其注册,链路如下:
DelegatingWebMvcConfiguration.requestMappingHandlerMapping()
-> getInterceptors()

-> OpWebAutoConfiguration.addInterceptors
![image.png](https://img-blog.csdnimg.cn/img_convert/3f176c28044f77059bf27e9814314b38.png#averageHue=#212120&clientId=u1e131981-f784-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=1702&id=uc582c998&margin=[object Object]&name=image.png&originHeight=1702&originWidth=2006&originalType=binary&ratio=1&rotation=0&showTitle=false&size=441590&status=done&style=none&taskId=u56e925bd-53b1-44b3-b40e-4b839c8e500&title=&width=2006)

关于通过bean类型方式的注册

spring文档上描述,支持的拦截器注册的方法只有下面的方式(即同上述第一种方式,通过javaconfig或者xml配置)

https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-config-interceptors
在这里插入图片描述

并不支持上述根据bean类型注册。

op3支持按类型,自动注册拦截器
看op4上面的代码已经没了

解决方案

移除JpushInterceptor上的@Component注解
在这里插入图片描述

  • 本周二上预发,周四发布生产

结论

公司内对Spring二次开发,但个别情况没有考虑周全,用户代码总是千奇百怪的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

组合数学总结

文章目录三、递推关系3.1 常系数线性递推关系特征根法1.齐次递推关系2.非齐次方程母函数方法三、递推关系 3.1 常系数线性递推关系 k阶齐次递推关系:anc1an−1c2an−2...ckan−k0,ck≠0(3.1.1)k阶非齐次递推关系:anc1an−1c2an−2...ckan−kf…

SpringCloud微服务(四)——Nacos服务注册和配置中心

SpringCloud Alibaba Nacos服务注册和配置中心 Spring Cloud Netflix Projects Entering Mainterance Mode SpringCloud Alibaba: 服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 Rocke…

在 UltraEdit v15.00 及更高版本中添加用于语法高亮的 wordfile丨使用教程

UltraEdit原生支持开箱即用的最常用编程和标记语言的语法突出显示。但是,我们也有数百个其他语言的单词文件,而且很容易找到并添加您需要的语言!重要提示:此电源提示适用于运行 UltraEdit v15.00或 UEStudio v09.10及更高版本的用…

rosjava零散

笔者之前想在非ros环境下使用通信,了解到rosjava可以实现,不过后来换成了rosbridge,也搜集了一些rosjava的资料,放在这里供参考(没时间整理了,格式较乱请见谅) 安装方式:sudo apt-get install ros-indigo-…

Blind Backdoors in Deep Learning Models 论文笔记

#论文笔记# 1. 论文信息 论文名称Blind Backdoors in Deep Learning Models作者Eugene Bagdasaryan Vitaly Shmatikov Cornell Tech出版社USENIX Security Symposium 2021 (网安A类会议)pdf论文主页 本地PDF代码pytoch_Backdoors_101 2. introduction …

《第一行代码》核心知识点:Android简介

前言 自本文开始,我将更新《第一行代码 Android 第2版.pdf》,(提取码:n5ag ) 核心要点系列,通过阅读本系列文章可以帮助有Android基础的开发人员,去除冗余的基础讲解,直击核心知识点…

GEE开发之Modis_ET数据分析和获取

GEE开发之Modis_ET数据获取1 ET(蒸散量)2 MOD16A2(500米/8天)2.1 MOD16A2下的所有指数2.2 ET影像获取和查看3 ET日数据下载(以MOD16A2为例)4 ET月数据下载(以MOD16A2为例)5 ET年数据下载(以MOD16A2为例)前言:主要介绍Modis下的ET数据的获取和下载(日数据…

工厂模式【简单工厂+工厂+抽象工厂】总结

一、简单工厂模式 描述 简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一。简单工厂模式中专门定义一个简单工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂类根据传入的参数&a…

wireshark工具详解、数据包抓取分析、使用教程

Wireshark界面 Wireshark查看数据捕获列表 数据包概要信息窗口:描述每个数据包的基本信息。如图,点击某行数据,即可在下方显示该数据包的信息。 1、数据包解析窗口:显示被选中的数据包的解析信息,包含每个数据包的整体…

通过request请求和servlet实现注册跳转界面案例及问题解决

案例:用户登录 * 用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表 3.使用JdbcTemplate技术封装JDBC 4.登录成功跳转到Suc…

机器人操作系统ROS(19) 雷达和摄像头融合的资料

搜集的有关雷达和摄像头融合的资料。仅供参考: #1 传感器融合:激光雷达摄像头 摄像头产生的数据是2D图像,对于物体的形状和类别的感知精度较高。深度学习技术的成功起源于计算机视觉任务,很多成功的算法也是基于对图像数据的处理…

图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测

图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测 目录 图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测效果分析基本描述程序实现核心概念参考资料效果分析 基本描述 此版本包含了训练和评估模型的代码,以预测Traffic4Cast挑战数据的交…

ssh-keygen和openssl的区别

OpenSSL OpenSSL是用于应用程序的软件库,该应用程序可保护计算机网络上的通信免遭窃听或需要识别另一方的身份,是SSL和TLS协议的开源实现。采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台…

力扣LeatCode算法题第9题-回文数

要求: //给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 //回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 //例如,1…

百世的数智化供应链凭何融入企业生命周期?

在供应链这个词出现前,供应链的本体就已经存在。 萨缪尔森说,现代经济生活的命脉是交换。当不同的物资、资金、信息在产业链上流动起来时,产业才能形成模型,经济才会有活力。然而,供应商增加、活动变多、地理距离拉长…

智慧气象解决方案-最新全套文件

智慧气象解决方案-最新全套文件一、建设背景二、建设架构传统气象所面临的挑战:1、气象数据大幅快速增长,导致计算能力不足2、人工智能应用不足,短临预报精度较低3、气象数据分散,数据融合困难4、气象服务方式单一,体验…

外卖项目04---菜品管理业务开发

效果展示: 目录 一、文件上传下载 50 1.1文件上传 50​编辑 1.2文件下载 1.3文件上传下载---文件上传代码实现1 1.4文件上传下载---文件上传代码实现2 1.5文件上传下载---文件下载代码实现 53 二、新增菜品 54 2.1需求分析 54 2.2数据模型 2.3新增菜品---代码开发--…

uniapp使用nfc功能及详解

公司使用uniapp在android手机端要增加一个nfc识别的功能。在此记录一下实现的过程。 资料查找 我的代码逻辑主要来源于找到的这篇文章: uniapp-安卓NFC读取 - 我要找到我的全世界 - 博客园 文章内附有代码,为防止文章失效代码消失,在这篇文…

向中央超算平台进化 哪吒汽车发布技术品牌“浩智”

电子电气架构是汽车的“大脑和神经系统”,决定了智能汽车的体验上限。为了实现高阶智能,车企须将汽车的电子电气架构从分布式,向集中式转变,打造出中央超算平台 11月21日,哪吒汽车举行“浩智战略2025”全球技术品牌发布…

Mentor Xpedition VX2.11入门遇到的问题和解决方案 (1)

一、前言 平时使用AD绘制板子,最近又朋友强烈推荐Mentor Xpedition。说它的自动布线功能非常强。相比于pads,这款软件的教程很少。但好在B站还是又几个不错的视频。在相关视频的讲解下,慢慢入门。目前来看这款软件的易用性很差,操…