【发布时间】:2021-01-04 03:51:21
【问题描述】:
我使用服务器在 yml 配置中定义了一些路由,这些路由存储在 Consul Key/Value 中。当我尝试使用 Fluent API(基于 Java 的配置)定义路由时,网关无法正常工作并且不会处理此路由。
基于服务器的配置示例:
cloud:
gateway:
discovery:
locator:
enabled: false
routes:
- id: foo
predicates:
- Path=/foo/**
uri: lb:https://bar
并以 Fluent 风格定义路线:
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route(p -> p
.path("/testing_route")
.filters(f -> f.addRequestHeader("Hello", "World"))
.uri("http://httpbin.org:80"))
.build();
}
结果网关对 /testing_route 路径的所有请求返回 404 状态码,这意味着该路由不起作用。
如果遇到问题,我想使用基于 DSL 配置的 ModifyRequestBodyFilter 修改请求正文,这意味着 - 我需要使用两种方式来配置上下文。 实际上,这段代码什么也没做。
我们可以将 RouteLocatorBuilder 与 yml 中基于属性的配置结合起来吗?
Spring Boot 2.2.5 发布 Spring Cloud Hoxton.SR3
【问题讨论】:
标签: spring spring-boot spring-cloud spring-cloud-gateway