GateWay中StripPrefix的作用及说明

 更新时间:2025年07月19日 08:43:12   作者:hero.zhong  
StripPrefix过滤器剥离路径前缀,PrefixPath则添加前缀,例如,访问http://host:port/lbs/hello时,StripPrefix=1会将请求转至http://bds-lbs-service/hello,PrefixPath会添加/lbs前缀,两者作用相反,用于路由路径调整

网关过滤器

StripPrefix 过滤器

StripPrefix网关过滤器工厂采用一个参数StripPrefix。 StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。

作用: 去掉部分URL路径

spring:
  cloud:
    gateway:
      routes:
      - id: bds-lbs-service
        uri: lb://bds-lbs-service
        predicates:
        - Path=/lbs/**
        filters:
        - StripPrefix=1

如上,我们访问网关地址http://host:port/lbs/hello时

若无StripPrefix过滤器时,gateway 发送请求到后台服务bds-lbs-service的url就是http://bds-lbs-service/lbs/hello

若有StripPrefix过滤器时,gateway会根据StripPrefix=1所配的值(这里是1)去掉URL路径中的部分前缀(这里去掉一个前缀,即去掉lbs)

发送请求到后台服务spring-cloud-producer的url变成http://bds-lbs-service/hello

spring:
  cloud:
    gateway:
      routes:
      - id: crm
        uri: http://crm
        predicates:
        - Path=/crm/**
        filters:
        - StripPrefix=2

当通过网关向/name/bar/foo发出请求时,对nameservice的请求将类似于http://crm/foo。

PrefixPath 过滤器

作用: 它的作用和StripPrefix正相反,是在URL路径前面添加一部分的前缀

spring:
  cloud:
    gateway:
      routes:
      - id: bds-lbs-service
        uri: lb://bds-lbs-service
        filters:
        - PrefixPath=/lbs

这将会把/lbs添加到路由prefixpath_route匹配到的所有请求的路径的前面。

所以对/hello的请求将会被发送到/lbs/hello。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 老生常谈 MyBatis 复杂查询

    老生常谈 MyBatis 复杂查询

    这篇文章主要介绍了 MyBatis 复杂查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • java实现马踏棋盘算法(骑士周游问题)

    java实现马踏棋盘算法(骑士周游问题)

    这篇文章主要为大家详细介绍了java实现马踏棋盘算法,解决骑士周游问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Spring实战之抽象Bean和子Bean定义与用法示例

    Spring实战之抽象Bean和子Bean定义与用法示例

    这篇文章主要介绍了Spring实战之抽象Bean和子Bean定义与用法,结合实例形式分析了Spring抽象Bean和子Bean相关配置、定义与使用操作技巧,需要的朋友可以参考下
    2019-11-11
  • Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

    Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

    InstantiationAwareBeanPostProcessor是Spring 生命周期中的一个关键扩展接口,继承自 BeanPostProcessor,这篇文章主要介绍了Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析,需要的朋友可以参考下
    2025-06-06
  • 如何利用Java AWT 创建一个简易计算器

    如何利用Java AWT 创建一个简易计算器

    这篇文章主要介绍了如何利用Java AWT 创建一个简易计算器,AWT 是一个有助于构建 GUI 的 API 基于 java 应用程序,下面关于其相关资料实现计算器的内容详细,需要的朋友可以参考一下
    2022-03-03
  • Java中使用正则检查有效日期的实现

    Java中使用正则检查有效日期的实现

    要判断一个字符串是否符合时间格式,可以使用正则表达式,本文主要介绍了Java中使用正则检查有效日期的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Springboot @Value使用代码实例

    Springboot @Value使用代码实例

    这篇文章主要介绍了Springboot @Value使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类写的一个简单的zip压缩解压工具类,实现了指定目录压缩到和该目录同名的zip文件和将zip文件解压到指定的目录的功能
    2014-03-03
  • Mybatis第三方PageHelper分页插件的使用与原理

    Mybatis第三方PageHelper分页插件的使用与原理

    提到插件相信大家都知道,插件的存在主要是用来改变或者增强原有的功能,MyBatis中也一样,下面这篇文章主要给大家介绍了关于Mybatis第三方PageHelper分页插件的使用与原理,需要的朋友可以参考下
    2022-02-02
  • MyBatis在DAO层定义接口返回类型泛型无效的解决

    MyBatis在DAO层定义接口返回类型泛型无效的解决

    这篇文章主要介绍了MyBatis在DAO层定义接口返回类型泛型无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论