【微服务 - 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容器。(楼管)
相关推荐
muddjsv7 小时前
深入浅出 B/S 架构:从原理到实践,解锁 Web 应用开发核心
架构
水上冰石8 小时前
Kubernetes Ingress + TLS 故障排查全流程
云原生·容器·kubernetes
岁岁种桃花儿8 小时前
K8s核心流量管理:Ingress与Service深度解析及实战对比
云原生·容器·kubernetes
晚霞的不甘8 小时前
Flutter for OpenHarmony 进阶实战:打造 60FPS 流畅的物理切水果游戏
javascript·flutter·游戏·云原生·正则表达式
市安8 小时前
docker命令知识点1
运维·docker·云原生·容器·eureka
小庄8 小时前
如何正确的 DDD
微服务·ddd·洋葱架构
国科安芯9 小时前
永磁同步电机驱动控制系统中MCU的抗干扰设计
单片机·嵌入式硬件·性能优化·架构·安全性测试
天才奇男子9 小时前
LVS原理及部署
linux·运维·云原生·wpf·lvs·linux chrony
川西胖墩墩10 小时前
钻井平台设备布局图设计方法
人工智能·架构·流程图
CTO Plus技术服务中10 小时前
2026版Java web高并发面试题和参考答案
java·jvm·spring·spring cloud·面试·tomcat·java-consul