SpringCloud GateWay 在全局过滤器中注入OpenFeign网关后无法启动
目录
一、问题
二、原因
1、修改配置
2、添加@Lazy注解在client上面
3、启动成功
一、问题
当在gateway的全局过滤器GlobalFilter中注入OpenFeign接口的时候会一直卡在路由中,但是不会进一步,导致启动未成功也未报错失败
2024-01-18 22:06:59.299 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [After]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Before]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Between]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Cookie]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Header]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Host]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Method]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Path]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Query]
2024-01-18 22:06:59.300 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [ReadBody]
2024-01-18 22:06:59.301 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [RemoteAddr]
2024-01-18 22:06:59.301 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [XForwardedRemoteAddr]
2024-01-18 22:06:59.301 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Weight]
2024-01-18 22:06:59.301 INFO 19000 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [CloudFoundryRouteService]
二、原因
在gateway网关中不能使用openfeign同步调用
三、解决方法
1、修改配置
由于配置了spring.cloud.gateway.discovery.locator.enabled = true导致,改为false或者去掉该配置,因为默认为false,但是该方案会导致动态路由不能加载,影响微服务调用。gateway:discovery:locator:enabled: false
2、添加@Lazy注解在client上面
在注入的AuthClient上面添加@Lazy注解
@Lazy@Autowiredprivate AuthClient authClient;
全部代码:
@Component
@Slf4j
public class GatewayGlobalFilter implements GlobalFilter, Ordered {@Autowiredprivate AuthProperties authProperties;@Lazy@Autowiredprivate AuthClient authClient;@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {//获取请求头的requestList<String> excludePaths = authProperties.getExcludePaths();log.info(excludePaths.toString());//判断是否需要拦截ServerHttpRequest request = exchange.getRequest();RequestPath path = request.getPath();//如果不需要拦截则放行if(excludePaths.contains(path.toString())){return chain.filter(exchange);}//获取tokenString authorization = request.getHeaders().getFirst("authorization");String token= authorization.replace("Bearer ","");// 验证tokenString userId = authClient.getUserId(token);if(userId==null){//设置响应码为401ServerHttpResponse response = exchange.getResponse();response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}//放行return chain.filter(exchange);}@Overridepublic int getOrder() {return 0;}
}
3、启动成功

相关文章:
SpringCloud GateWay 在全局过滤器中注入OpenFeign网关后无法启动
目录 一、问题 二、原因 1、修改配置 2、添加Lazy注解在client上面 3、启动成功 一、问题 当在gateway的全局过滤器GlobalFilter中注入OpenFeign接口的时候会一直卡在路由中,但是不会进一步,导致启动未成功也未报错失败 2024-01-18 22:06:59.299 I…...
web前端项目-贪吃蛇小游戏【附源码】
web前端项目-贪吃蛇小游戏 【贪吃蛇】是一款经典的小游戏,采用HTML、CSS和JavaScript技术进行开发,玩家通过控制一条蛇在地图上移动,蛇的目的是吃掉地图上的食物,并且让自己变得更长。游戏的核心玩法是控制蛇的移动方向和长度&am…...
ICCV2023 | PTUnifier+:通过Soft Prompts(软提示)统一医学视觉语言预训练
论文标题:Towards Unifying Medical Vision-and-Language Pre-training via Soft Prompts 代码:https://github.com/zhjohnchan/ptunifier Fusion-encoder type和Dual-encoder type。前者在多模态任务中具有优势,因为模态之间有充分的相互…...
代码随想录 Leetcode459. 重复的子字符串(KMP算法)
题目: 代码(首刷看解析 KMP算法 2024年1月18日): class Solution { public:void getNext(string& s,vector<int>& next) {int j 0;next[0] j;for (int i 1; i < s.size(); i) {while (j > 0 && s…...
Rust之构建命令行程序(三):重构改进模块化和错误处理
开发环境 Windows 10Rust 1.74.1 VS Code 1.85.1 项目工程 这次创建了新的工程minigrep. 重构改进模块化和错误处理 为了改进我们的程序,我们将修复与程序结构及其处理潜在错误的方式有关的四个问题。首先,我们的main函数现在执行两项任务:解析参数和…...
广和通AI解决方案“智”赋室外机器人迈向新天地!
大模型趋势下,行业机器人将具备更完善的交互与自主能力,逐步迈向AI 2.0时代,成为人工智能技术全面爆发的重要基础。随着行业智能化,更多机器人应用将从“室内”走向“室外”,承担更多高风险、高智能工作。复杂的室外环…...
C++I/O流——(4)格式化输入/输出(第二节)
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 含泪播种的人一定能含笑收获ÿ…...
九、K8S-label和label Selector
label和label selector 标签和标签选择器 1、label 标签: 一个label就是一个key/value对 label 特性: label可以被附加到各种资源对象上一个资源对象可以定义任意数量的label同一个label可以被添加到任意数量的资源上 2、label selector 标签选择器 L…...
【.NET Core】 多线程之(Thread)详解
【.NET Core】 多线程之(Thread)详解 文章目录 【.NET Core】 多线程之(Thread)详解一、概述二、线程的创建和使用2.1 ThreadStart用于无返回值,无参数的方法2.2 ParameterizedThreadStart:用于带参数的方法 三、线程的…...
苹果笔记本 macbook 在 office word 中使用 mathtype 的方法
前言 想在 MacBook 中使用 mathtype,去搜索,去 Apple Store 下载也发现没有 解决方法 打开 office Word 的「插入」中的「获取加载项」、「我的加载项」。 在应用商店中下载,需要登录自己的微软账号。 加载成功后就可以使用了。 注意 和…...
课表排课小程序怎么制作?多少钱?
在当今的数字化时代,无论是购物、支付、点餐,还是工作、学习,都离不开各种各样的微信小程序。其中,课表排课小程序就是许多教育机构和学校必不可少的工具。那么课表排课小程序怎么制作呢?又需要多少钱呢? …...
C语言总结十三:程序环境和预处理详细总结
了解程序的运行环境可以让我们更加清楚的程序的底层运行的每一个步骤和过程,做到心中有数,预处理阶段是在预编译阶段完成,掌握常用的预处理命令语法,可以让我们正确的使用预处理命令,从而提高代码的开发能力和阅读别人…...
tinyxml2
使用tinyxml2,得知道一些xml基础 xml tutorial--菜鸟 tinyxml2类对象 链接 结构 XMLNode 什么是节点 节点:元素、声明、文本、注释等。 XMLDocument xml文档(文件)对象。 作用: 加载xml文件, tinyxml2作用 先定义两个宏 …...
What is `@Controller` does?
Controller 是SpringMVC注解,标记一个类作为Web控制器(Controller),负责处理HTTP请求并返回响应结果 在SpringMVC中,控制器类的主要职责是: 1、接收来自客户端的HTTP请求 2、调用服务层或其他业务逻辑组件…...
新版AndroidStudio dependencyResolutionManagement出错
在新版AndroidStudio中想像使用4.2版本或者4.3版本的AndroidStudio来构造项目?那下面这些坑我们就需要来避免了,否则会出各种各样的问题。 一.我们先来看看新旧两个版本的不同。 1.jdk版本的不同 新版默认是jdk17 旧版默认是jdk8 所以在新版AndroidSt…...
第三天业务题
3-1 你们的项目是如何进行参数校验的 在我们的项目中,通常使用以下2种方式进行参数校验: 1.手动校验:在方法内部,我们可以手动编写代码来对参数进行校验。例如,使用条件判断语句(if-else)来检…...
nestjs 装饰器
1、装饰器定义 装饰器是一种特殊的类型声明,它可以附加在类、方法、属性、参数上边 需开启tsconfig.json中 "experimentalDecorators":true 生成tsconfig.json文件 tsc -init 2、类装饰器 // 类装饰器 主要是通过符号添加装饰器 // 装饰器会自动把cl…...
一款开源且不限制大小可以设置过期时间的支持分享的的开源文件共享系统picoshare 部署教程
1.拉取镜像 2.部署 创建目录 mkdir -p /opt/picoshare/data 部署 其中:"somesecretpass"是密码 docker run \--env "PORT4001" \--env "PS_SHARED_SECRETsomesecretpass" \--publish 10005:4001/tcp \--volume "/opt/picoshare/data:…...
eBPF运行时安全
引言 eBPF作为当前linux系统上最为炙手可热的技术,通常被用于网络流量过滤和分析、系统调用跟踪、性能优化、安全监控,当下比较知名的项目有Cilium、Falco等。 Cilium 是一个开源的容器网络和安全性项目,致力于提供高效的容器通信和强大的安…...
Linux 系统中常见的命令,它们用于执行各种任务,包括文件和目录管理、系统信息查看、用户管理等
以下是一些在 Linux 系统中常见的命令,它们用于执行各种任务,包括文件和目录管理、系统信息查看、用户管理等。这里列举了一些基础的命令: 文件和目录管理: ls: 列出目录内容。 ls cd: 切换当前目录。 cd /path/to/directory …...
BilibiliDown:突破传统限制的B站视频高效下载解决方案
BilibiliDown:突破传统限制的B站视频高效下载解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b…...
5步掌控Windows Defender:开源工具实现永久安全策略定制
5步掌控Windows Defender:开源工具实现永久安全策略定制 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control …...
新手开发者的第一课:用快马打造零基础的mc指令学习助手
作为一个刚接触《我的世界》指令系统的玩家,我最初完全搞不懂那些复杂的斜杠命令。直到自己动手做了一个指令查询工具,才发现原来理解指令可以这么简单。今天就来分享如何用InsCode(快马)平台快速打造一个零基础友好的MC指令助手。 为什么需要专门的指令…...
5分钟快速上手:如何将STL文件转换为STEP格式实现跨平台设计协作?
5分钟快速上手:如何将STL文件转换为STEP格式实现跨平台设计协作? 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否曾遇到过这样的困境?精心设计的3D打印…...
VLA学习笔记——持续更新中
5 VLA - Vision-Language-Action 大模型 Vision-Language-Action(视觉 - 语言 - 动作) 大模型是之后 多模态 AI 以及机器人发展的一个非常重要的方向,有了 VLA 这位大神的加持,机器人可以完成由环境感知到动作应对的智能任务。 欢迎大家star! Paper: O…...
从零到一:在Windows 11 WSL2上本地跑通Dify AI工作流(含GPU加速配置)
从零到一:在Windows 11 WSL2上本地跑通Dify AI工作流(含GPU加速配置) 对于习惯Windows环境的开发者来说,直接在本地搭建AI开发环境往往面临两难选择:要么忍受虚拟机沉重的资源开销,要么被迫切换到Linux系统…...
Fish Speech 1.5快速上手:一键部署,轻松实现中英日韩13种语言语音合成
Fish Speech 1.5快速上手:一键部署,轻松实现中英日韩13种语言语音合成 1. 为什么选择Fish Speech 1.5? 上周我帮一个跨国团队部署语音合成系统,他们需要在24小时内完成中英日韩四语的商品介绍语音生成。传统方案需要部署多个语音…...
Pixel Aurora Engine基础教程:8-BIT音效视觉化——将MIDI转像素动态图初探
Pixel Aurora Engine基础教程:8-BIT音效视觉化——将MIDI转像素动态图初探 1. 认识Pixel Aurora引擎 Pixel Aurora是一款专为像素艺术创作设计的AI绘图工作站,它将现代AI技术与复古游戏美学完美融合。这款引擎最独特之处在于能将音乐数据转化为动态像素…...
Qwen3-ASR-1.7B一文详解:方言识别泛化能力、跨地域口音迁移学习实践
Qwen3-ASR-1.7B一文详解:方言识别泛化能力、跨地域口音迁移学习实践 1. 方言识别新突破:Qwen3-ASR-1.7B的技术亮点 语音识别技术近年来发展迅速,但方言和口音识别一直是行业难题。不同地区的方言差异大,同一方言在不同地区的口音…...
基于Qwen3-VL-8B-Instruct-GGUF的C++高性能推理服务开发
基于Qwen3-VL-8B-Instruct-GGUF的C高性能推理服务开发 如果你正在寻找一种方法,把强大的多模态AI模型集成到自己的应用里,同时还要保证高性能、低延迟,那么用C来开发推理服务是个不错的选择。今天咱们就来聊聊,怎么用C为Qwen3-VL…...
