- 前言
- 环境
- 路由配置示例
- 路由配置的两种形式
- 路由到指定URL
- 通配
- 精确匹配
- 路由到微服务
- 通配
- 精确匹配
- 路由谓词工厂
- 内置的路由谓词工厂
- Method 谓词工厂示例
- 自定义路由谓词工厂
- 代码配置
- 测试
Route(路由)是Spring Cloud Gateway的基础元素,就是一个转发规则,其包含ID、目标URL、Predicate集合以及Filter集合
环境
Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE
路由配置示例
- 如果访问gateway的/baidu这个路径就会进入该路由,会用AddRequestHeader这个过滤器去处理,再将请求转发到http://www.baidu.com
spring:
cloud:
gateway:
routes:
- id: some_route
uri: http://www.baidu.com
predicates:
- Path=/baidu
filters:
- AddRequestHeader=X-Request-Foo, Bar
路由配置的两种形式 路由到指定URL 通配
- 访问GATEWAY_URL
@Component
public class TimeBetweenRoutePredicateFactory extends AbstractRoutePredicateFactory
{ public TimeBetweenRoutePredicateFactory() { super(TimeBetweenConfig.class); } @Override public Predicate apply(TimeBetweenConfig config) { LocalTime start = config.getStart(); LocalTime end = config.getEnd(); return exchange -> { LocalTime now = LocalTime.now(); return now.isAfter(start) && now.isBefore(end); }; } @Override public List shortcutFieldOrder() { return Arrays.asList("start", "end"); } }
测试- 09:00 - 17:00外访问
- 09:00 - 17:00内访问
- End - ﹀ ﹀ ﹀ 白嫖有风险 点赞加收藏



