目录
- 过滤器
- 全局过滤器(GlobalFilter)
- 路由过滤器(Route Filter)
- 背景和价值 # 参考资料
过滤器
Spring Cloud Gateway 的过滤器分为两种类型,生效方式不同:
全局过滤器(GlobalFilter)
你的 LoggingFilter1
实现了 GlobalFilter
接口,并且通过 @Configuration
+ @Bean
注册为 Spring 容器中的 Bean。
对于全局过滤器,Spring Cloud Gateway 会自动扫描并加载所有 GlobalFilter
类型的 Bean,对所有路由生效,无需在 application.yml
中做任何配置。
你的代码中:
@Configuration
确保类被 Spring 扫描到;@Bean
将loggingFilter()
方法返回的GlobalFilter
实例注册到容器;- 这两个注解共同保证了过滤器会被自动识别并应用到所有请求中。
路由过滤器(Route Filter)
只有针对特定路由的局部过滤器(如 StripPrefix
、RequestRateLimiter
等)才需要在 application.yml
的 routes.filters
中配置,例如:
routes:- id: user-servicefilters:- StripPrefix=1 # 这是路由过滤器,需要显式配置