首页 > 其他分享 >Gateway 网关 之 自定义断言

Gateway 网关 之 自定义断言

时间:2023-02-10 01:12:38浏览次数:55  
标签:网关 return 自定义 Config TenantRoutePredicateFactory public config Gateway

自定义 PredicateFactory

可以定义针对于 Router 的 Predicate。

注意:

1、类名必须叫做XxxRoutePredicateFactory.注入到Spring容器后使用时的名称就叫做Xxx。

2、类必须继承 AbstractRoutePredicateFactory,让父类帮实现配置参数的处理

3、必须声明一个静态的内部类,进行传递参数

4、(可选)可以进行 重写 shortcutFieldOrder 方法进行属性字段排序,实现配置简写

5、重写apply( ) 函数,返回 true 表示路由成功,false 表示路由失败 404

 

如下测试案例(仅测试示例,没有实际意义,内置的断言能满足大多数的场景的):

public class TenantRoutePredicateFactory extends AbstractRoutePredicateFactory<TenantRoutePredicateFactory.Config> {

    public TenantRoutePredicateFactory() {
        super(TenantRoutePredicateFactory.Config.class);
    }

    @Override
    public Predicate<ServerWebExchange> apply(Config config) {
        return exchange -> config.getTenantId() != null && config.getTenantId().length() != 0;
    }

    /**
     * 字段排序实现配置简写
     *
     * @return
     */
    @Override
    public List<String> shortcutFieldOrder() {
        return List.of("tenantId");
    }

    @Setter
    @Getter
    public static class Config {
        /**
         * 租户Id编码
         */
        private String tenantId;
    }
}

 

>>>>>>>>>>>>>> 下一篇 :  过滤器  <<<<<<<<<<<<<<<<<

 

标签:网关,return,自定义,Config,TenantRoutePredicateFactory,public,config,Gateway
From: https://www.cnblogs.com/Alay/p/17107593.html

相关文章

  • drf day09 接口文档、jwt快速使用、自定义jwt的登录返回数据格式
    一、接口文档1.前言​ 因为一般来说,项目都是前后端分离,我们作为后端工程师,就写接口就行,但是我们通过接口返回给前端的数据,前端可不知道都是些啥,所以就需要后端编写接口......
  • 40-自定义异常
    使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。在程序中使用自定义异常类,大体......
  • 音乐播放器 — 用 vant4 中的滑块自定义播放器进度条
    一、运行效果   二、代码实现2.1、HTML:<!--音频播放器--><audioref="audio"src="音乐名称.mp3"id="audio"></audio><!--进度条--><di......
  • 构建api gateway之 基于etcd实现动态配置同步
    配置中心在之前 tcp的yaml配置 介绍了如何监听yaml文件变化然后更新配置。当然假如我们有很多实例,那么yaml改动将是非常痛苦的事情,那么如何做到配置文件统一管理,实时更......
  • Vagrantfile - 自定义配置
    1、Vagrantfile参数说明:#-*-mode:ruby-*-#vi:setft=ruby:Vagrant.configure("2")do|config|#################Box配置#################config.vm.b......
  • EasyCVR新版本如何通过接口获取AI智能分析网关推送的告警照片?
    在AI人工智能技术进一步落地应用的趋势下,基于云边端深度融合与协同的“AI+”模式,已经成为当前行业与技术发展的新趋势。基于EasyCVR和智能分析网关的AI智能识别与分析能力,通......
  • nvue页面自定义字体
    addRule函数 1@原型:addRule(type,contentObject)2@参数:3type:[StringfontFace必需]协议名称,不可修改,固定值为:fontFace。4contentObject:[Ob......
  • Spring45 - 自定义校验
    实现自定义校验第一步自定义校验注解importjakarta.validation.Constraint;importjakarta.validation.Payload;importjava.lang.annotation.*;@Target({ElementT......
  • Spring Boot自定义注释制作API接口拦截器进行TOKEN验证
    一:自定义注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic@interfaceChackToken{booleanvalidate()defaulttrue;}......
  • 【Logback】自定义日志输出格式
    logback官方文档logback(二)springboot配置日志文件格式、logback-spring配置文件详解、logback为日志自定义颜色【史上最详细】logback(三)mybatis-plus结合logback将sql语......