Spring Cloud Fluent Java Routes API
2024-01-06 11:14 更新
为了在Java中进行简单的配置,在RouteLocatorBuilder
bean中定义了一个流畅的API。
GatewaySampleApplication.java。
// 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") ) .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") ) .build(); }
此样式还允许更多自定义谓词断言。RouteDefinitionLocator
beans定义的谓词使用逻辑and
进行组合。通过使用流畅的Java API,您可以在Predicate
类上使用and()
,or()
和negate()
运算符。
以上内容是否对您有帮助:
更多建议: