服务网关Spring Cloud Gateway -- Predicate介绍

阅读更多

      Predicate来源于Java 8,是Java8中引入的一个函数,Predicate接受一个输入参数,返回一个布尔值结果。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑(与,或,非)。可以用于接口请求参数校验、判断新老数据是否有变化需要进行更新操作。

 

      Spring Cloud Gateway利用Predicate的特性实现了各种路由匹配规则,有通过Header、请求参数等不同的条件来进行作为条件匹配到对应的路由。

 

       Spring Cloud Gateway内置的Predicate

             After

                   - After=2017-01-20T17:42:47.789+08:00[Asia/Shanghai]

 

             Before

                   - Before=2017-01-20T17:42:47.789+08:00[Asia/Shanghai]

 

             Between

                   - Between=2017-01-20T17:42:47+08:00[Asia/Shanghai], 2017-01-21T17:42:47+08:00[Asia/Shanghai]

 

             Cookie

                   - Cookie=CookieName, CookieValueRegx

 

             Header Header属性

                   - Header=HeaderName, HeaderValueRegx

                   - Header=X-Request-Id, \d+

 

             Host

                   - Host=**.somehost.org,**.anotherhost.org

 

             Method 请求方式

                   - Method=GET

                   - Method=POST

 

             Path 请求路径

                   - Path=/foo/{segment},/bar/{segment}

 

             Query 请求参数

                   - Query=ParamName

                   - Query=ParamName, ParamValueRegx

 

             RemoteAddr 请求ip地址

                   - RemoteAddr=IP地址/子网掩码

                   - RemoteAddr=192.168.1.1/24

 

你可能感兴趣的:(服务网关Spring Cloud Gateway -- Predicate介绍)