Solon Cloud Gateway 开发:Route 的匹配检测器及定制

RoutePredicateFactory 是一组专为路由匹配检测设计的接口,以完成匹配检测处理。对应 predicates 配置。

1、内置的匹配检测器

匹配检测器工厂 本置前缀 说明与示例
AfterPredicateFactory After= After 时间检测器,ZonedDateTime 格式 (After=2017-01-20T17:42:47.789-07:00[America/Denver])
BeforePredicateFactory Before= After 时间检测器,ZonedDateTime 格式 (Before=2017-01-20T17:42:47.789-07:00[America/Denver])
CookiePredicateFactory Cookie= Cookie 检测器 (Cookie=token)(Cookie=token, ^user.)
HeaderPredicateFactory Header= Header 检测器 (Header=token)(Header=token, ^user.)
MethodPredicateFactory Method= Method 检测器 (Method=GET,POST)
PathPredicateFactory Path= Path 检测器(支持多路径匹配,以","号隔开) (Path=/demo/**) ,(Path=/demo/**,/hello/**)

2、定制示例

  • Path 检测器定制示例(配置例:Path=/demo/**
java 复制代码
@Component
public class PathPredicateFactory implements RoutePredicateFactory {
    @Override
    public String prefix() {
        return "Path";
    }

    @Override
    public ExPredicate create(String config) {
        return new PathPredicate(config);
    }

    public static class PathPredicate implements ExPredicate {
        private PathRule rule;

        /**
         * @param config (Path=/demo/**)
         * */
        public PathPredicate(String config) {
            if (Utils.isBlank(config)) {
                throw new IllegalArgumentException("PathPredicate config cannot be blank");
            }

            rule = new PathRule();
            rule.include(config);
        }

        @Override
        public boolean test(ExContext ctx) {
            return rule.test(ctx.rawPath());
        }
    }
}
相关推荐
2601_9620715717 分钟前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491111 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
zww89491114 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
YOU OU4 小时前
统一服务入口-Gateway
gateway
黑马程序员毕设5 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳5 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥5 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
devpotato5 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl09256 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk6 小时前
Java--IO--Path文件访问
java·后端