栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

SpringCloudAlibaba - Gateway 自定义路由谓词工厂

Java 更新时间:发布时间: 百科书网 趣学号

目录
  • 前言
    • 环境
    • 路由配置示例
  • 路由配置的两种形式
    • 路由到指定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 -
    白嫖有风险
    点赞加收藏
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/281062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号