【微服务 - easy视频 | day02】全局过滤器+局部过滤器+全局拦截器

文章目录

前言

本项目非原创,我只是个小小白,跟随 b 站脚步,找到老罗的这个项目,视频来源于:
https://www.bilibili.com/video/BV1oEUkY6EFy/?spm_id_from=333.1387.homepage.video_card.click

本人不分享项目源码,支持项目付费!!!

全局过滤器

1. 全局过滤器创建

gateway服务中创建一个全局过滤器。

实现GlobalFilter 和 Ordered接口:

  • GlobalFilter 是 Spring Cloud Gateway 提供的一个接口,用于定义全局过滤器,即适用于所有路由的过滤器。
  • Ordered 接口用于定义过滤器的执行顺序

重写filter方法:

  • Mono< void > 表示这是一个响应式编程的操作,结果是一个空值。
  • ServerWebExchange 是 Spring WebFlux 中的一个对象,用于表示 HTTP 请求和响应的上下
  • GatewayFilterChain 是过滤器链,用于调用后续的过滤器。

2. 验证

admin微服务创建test接口:

web微服务创建test接口:

gateway配置admin服务:

nacos中创建admin配置:

注意:记得开启数据库

启动gateway、admin、web服务,通过gateway的端口分别访问admin服务和web服务的测试接口:

gateway服务控制台打印日志:

访问两个服务的接口,都会通过gateway中的全局过滤器,成功验证全局过滤器生效。
所有请求,都会通过gateway网关来到达实际执行请求的微服务,所有请求都会走全局过滤器。

局部过滤器

1. 实现AdminFilter局部过滤器

局部过滤器:只对部分请求生效的过滤器。

创建AdminFilter,只对admin服务请求生效:

gateway中的服务配置,对于admin服务需要添加AdminFilter:

2. 验证

访问admin服务请求:

访问web服务请求:

全局拦截器

如果访问路径不存在,直接返回如下页面不合适。应该使用拦截器进行拦截后,返回前端相应的状态码和信息便于前端处理显示。

在gateway服务中创建全局拦截器:

此时,访问无效地址,可以json显示先关的错误信息:

过滤器和拦截器的区别

  • 过滤器 处理所有进入Web容器的请求时,包括静态资源。或者你的功能不依赖于Spring环境。基于Servlet 规范,任何Java Web工程都能用。(保安)
  • 拦截器 只需要对进入Spring MVC Controller的请求进行精细控制。Spring框架 的组件,依赖于Spring容器。(楼管)
相关推荐
张毅2004-10-10几秒前
docker详解:安装docker,docker架构,docker镜像、容器、网络、存储,容器监控,容器日志,综合实验
linux·运维·docker·云原生·云计算
小狼嚎月31 分钟前
K8s PV / PVC / StorageClass 有状态应用持久化
云原生·容器·kubernetes
星期一研究室1 小时前
飞书文档层级标题的“潜规则”,让你的信息流精致呈现
微服务·产品·设计
重庆小透明1 小时前
深入探寻微服务【第一篇微服务的坏】
微服务·云原生·架构
eric-sjq1 小时前
仅0.6B参数如何锁住超长记忆?Xiaothink-T17-RWKV5-MLA 架构深度解析:RWKV-v5 × MLA 的“降维打击“
python·架构
国科安芯1 小时前
抗辐照精密运放怎么选:ASL8522S 的斩波稳零与微安级功耗
架构·信息与通信·深空探测·抗辐射加固·极端环境电源
2401_8346369911 小时前
保姆级 Kubernetes 部署教程|从原理到三节点集群落地
云原生·容器·kubernetes
IT小白杨11 小时前
防关联用指纹浏览器还是虚拟机好?2026年技术架构深度对比与选型决策
chrome·经验分享·microsoft·架构·安全架构·指纹浏览器
2301_7807896612 小时前
DDoS 攻击溯源:DNS 水印标记 + 区块链存证的双保险
运维·服务器·网络·云原生·ddos
工业设备方案笔记15 小时前
RK3588 vs RK3568:AI边缘计算项目到底应该如何选择芯片平台?
arm开发·人工智能·目标跟踪·架构·边缘计算