Spring Cloud Gateway中如何在所有路由复用过滤器?
如何将重复路由过滤器设置为全局配置
当然可以,你不需要在每个路由里重复定义这些过滤器,直接通过Spring Cloud Gateway的**全局默认过滤器(default-filters)**配置就能实现全局生效。
配置方法
在你的网关配置文件(application.yml 或 application.properties)中,直接在 spring.cloud.gateway 节点下添加 default-filters,把需要全局生效的过滤器配置放进去即可:
spring: cloud: gateway: default-filters: - name: CacheRequestBody args: bodyClass: java.lang.String - StripPrefix=1
补充说明
- 全局默认过滤器会对所有路由自动生效,执行顺序是先运行全局过滤器,再运行单个路由自身定义的过滤器(如果该路由有额外配置的话)。
- 如果某个特定路由需要排除某个全局过滤器,可以在该路由的
filters列表中通过- 过滤器名称=-的方式移除,比如要移除StripPrefix,就写- StripPrefix=-。 - 如果你用的
CacheRequestBody是自定义过滤器,请确保它已经被正确注册为Spring Bean,否则全局配置无法识别并加载它。
内容的提问来源于stack exchange,提问作者pixel
相关产品推荐
相关产品推荐

