跳到主要内容

Fluent Java Routes API

DeepSeek V3 中英对照 Fluent Java Routes API

为了在 Java 中实现简单的配置,RouteLocatorBuilder bean 包含了一个流畅的 API。以下列表展示了它的工作原理:

// static imports from GatewayFilters and RoutePredicates
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder, ThrottleGatewayFilterFactory throttle) {
return builder.routes()
.route(r -> r.host("**.abc.org").and().path("/image/png")
.filters(f ->
f.addResponseHeader("X-TestHeader", "foobar"))
.uri("http://httpbin.org:80")
)
.route(r -> r.path("/image/webp")
.filters(f ->
f.addResponseHeader("X-AnotherHeader", "baz"))
.uri("http://httpbin.org:80")
.metadata("key", "value")
)
.route(r -> r.order(-1)
.host("**.throttle.org").and().path("/get")
.filters(f -> f.filter(throttle.apply(1,
1,
10,
TimeUnit.SECONDS)))
.uri("http://httpbin.org:80")
.metadata("key", "value")
)
.build();
}
java

这种风格还允许更多的自定义谓词断言。由 RouteDefinitionLocator bean 定义的谓词使用逻辑 and 进行组合。通过使用流式的 Java API,你可以在 Predicate 类上使用 and()or()negate() 操作符。