国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Cloud Gateway快速入門(二)——斷言工廠

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud Gateway快速入門(二)——斷言工廠。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

Spring Cloud Gateway包含許多內(nèi)置的Route Predicate工廠。所有這些斷言都匹配HTTP請(qǐng)求的不同屬性。多路由斷言工廠通過(guò)and組合。
官方提供的路由工廠:
Spring Cloud Gateway快速入門(二)——斷言工廠,??SpringCloud,gateway
這些斷言工廠的配置方式,參照官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html

1. 什么是Gateway斷言工廠

Gateway斷言工廠是Spring Cloud Gateway提供的一種機(jī)制,用于定義路由請(qǐng)求的匹配條件。通過(guò)使用不同的斷言工廠,我們可以根據(jù)請(qǐng)求的不同屬性(如請(qǐng)求路徑、請(qǐng)求方法、請(qǐng)求頭等)來(lái)匹配和過(guò)濾請(qǐng)求。

2. 為什么要使用斷言

斷言在軟件開發(fā)中起到了非常重要的作用。下面是一些使用斷言的主要原因:

2.1. 調(diào)試和開發(fā):

斷言可以用于驗(yàn)證程序的正確性,并在出現(xiàn)錯(cuò)誤時(shí)提供有用的錯(cuò)誤信息。通過(guò)在關(guān)鍵代碼段中插入斷言,開發(fā)人員可以檢查假設(shè)是否成立,以及在遇到不符合預(yù)期的情況時(shí)立即發(fā)現(xiàn)問題。

2.2. 防御性編程:

斷言可以幫助開發(fā)人員在代碼中插入一些額外的檢查,以確保程序在運(yùn)行時(shí)的各種情況下都能正確執(zhí)行。這有助于防止?jié)撛诘腻e(cuò)誤和異常情況,并提高代碼的健壯性和可靠性。

2.3. 文檔和可讀性:

斷言可以作為代碼的自文檔,提供了一種清晰明了的方式來(lái)描述代碼的預(yù)期行為和假設(shè)。這使得其他開發(fā)人員能夠更容易地理解和維護(hù)代碼。

2.4. 測(cè)試:

斷言是單元測(cè)試的重要組成部分。通過(guò)在測(cè)試中使用斷言,可以驗(yàn)證代碼的正確性,并確保它按照預(yù)期的方式工作。斷言還可以幫助捕獲和報(bào)告測(cè)試中的錯(cuò)誤和異常情況。

總之,斷言是一種強(qiáng)大的工具,可以幫助開發(fā)人員提高代碼的質(zhì)量和可靠性。它們可以幫助我們?cè)陂_發(fā)和測(cè)試過(guò)程中發(fā)現(xiàn)和解決問題,以及提供更好的代碼文檔和可讀性。

3. 常用的Gateway斷言工廠

以下是一些常用的Gateway斷言工廠及其用法:

3.1 Path斷言工廠

Path斷言工廠用于根據(jù)請(qǐng)求路徑進(jìn)行匹配。

spring:
  cloud:
    gateway:
      routes:
        - id: path_route
          uri: http://example.org
          predicates:
            - Path=/foo/**

在上述示例中,我們定義了一個(gè)名為 path_route 的路由規(guī)則,將以 /foo 開頭的請(qǐng)求轉(zhuǎn)發(fā)到 http://example.org

3.2 Method斷言工廠

Method斷言工廠用于根據(jù)請(qǐng)求方法進(jìn)行匹配。

spring:
  cloud:
    gateway:
      routes:
        - id: method_route
          uri: http://example.org
          predicates:
            - Method=GET

在上述示例中,我們定義了一個(gè)名為 method_route 的路由規(guī)則,將所有的GET請(qǐng)求轉(zhuǎn)發(fā)到 http://example.org

3.3 Header斷言工廠

Header斷言工廠用于根據(jù)請(qǐng)求頭進(jìn)行匹配。

spring:
  cloud:
    gateway:
      routes:
        - id: header_route
          uri: http://example.org
          predicates:
            - Header=X-Request-Id, \d+

在上述示例中,我們定義了一個(gè)名為 header_route 的路由規(guī)則,將請(qǐng)求頭中包含名為 X-Request-Id 的請(qǐng)求轉(zhuǎn)發(fā)到 http://example.org。

3.4 時(shí)間斷言工廠

要使用時(shí)間斷言工廠,我們需要在配置文件中定義相應(yīng)的路由規(guī)則。

spring:
  cloud:
    gateway:
      routes:
        - id: time_route
          uri: http://example.org
          predicates:
            - TimeBetween=startTime,08:00:00,endTime,18:00:00

在上述示例中,我們定義了一個(gè)名為 time_route 的路由規(guī)則,使用時(shí)間斷言工廠 TimeBetween 進(jìn)行匹配。我們可以通過(guò)傳遞參數(shù) startTime 和 endTime 來(lái)定義時(shí)間段的開始和結(jié)束時(shí)間。

4. 自定義Gateway斷言工廠

除了使用內(nèi)置的斷言工廠,我們還可以自定義Gateway斷言工廠來(lái)滿足特定的需求。自定義斷言工廠需要實(shí)現(xiàn) org.springframework.cloud.gateway.handler.predicate.GatewayPredicateFactory 接口,并注冊(cè)為Spring Bean。

以下是一個(gè)自定義Gateway斷言工廠的示例:

@Component
public class CustomPredicateFactory implements GatewayPredicateFactory<CustomPredicateFactory.Config> {

    @Override
    public Predicate<ServerWebExchange> apply(Config config) {
        // 自定義斷言邏輯
        return exchange -> {
            // 實(shí)現(xiàn)自定義的匹配邏輯
            return true; // 返回匹配結(jié)果
        };
    }

    @Override
    public Config newConfig() {
        return new Config();
    }

    @Override
    public Class<Config> configClass() {
        return Config.class;
    }

    public static class Config {
        // 自定義配置參數(shù)
    }
}

在上述示例中,我們定義了一個(gè)名為 CustomPredicateFactory 的自定義斷言工廠。通過(guò)實(shí)現(xiàn) apply 方法,我們可以定義自己的斷言邏輯。通過(guò)實(shí)現(xiàn) newConfig 方法,我們可以定義自己的配置參數(shù)。

5. 使用Gateway斷言工廠

要使用Gateway斷言工廠,我們需要在配置文件中定義相應(yīng)的路由規(guī)則。

spring:
  cloud:
    gateway:
      routes:
        - id: custom_route
          uri: http://example.org
          predicates:
            - Custom=param1,value1,param2,value2

在上述示例中,我們定義了一個(gè)名為 custom_route 的路由規(guī)則,使用自定義斷言工廠 Custom 進(jìn)行匹配。我們可以通過(guò)傳遞參數(shù) param1param2 來(lái)進(jìn)行匹配。

6. gateway斷言的功能種類

Spring Cloud Gateway 提供了多種斷言工廠,用于根據(jù)請(qǐng)求的屬性進(jìn)行路由匹配。以上是一些常用的斷言工廠和自定義斷言,下面是其他的斷言方式:

  1. Path 斷言工廠:根據(jù)請(qǐng)求的路徑進(jìn)行匹配,可以使用 Ant 風(fēng)格的路徑模式或正則表達(dá)式。

  2. Method 斷言工廠:根據(jù)請(qǐng)求的 HTTP 方法進(jìn)行匹配,如 GET、POST、PUT 等。

  3. Header 斷言工廠:根據(jù)請(qǐng)求的頭部信息進(jìn)行匹配,可以指定頭部的名稱和值。

  4. Cookie 斷言工廠:根據(jù)請(qǐng)求的 Cookie 進(jìn)行匹配,可以指定 Cookie 的名稱和值。

  5. Query 斷言工廠:根據(jù)請(qǐng)求的查詢參數(shù)進(jìn)行匹配,可以指定參數(shù)的名稱和值。

  6. Host 斷言工廠:根據(jù)請(qǐng)求的主機(jī)名進(jìn)行匹配,可以使用 Ant 風(fēng)格的主機(jī)名模式或正則表達(dá)式。

  7. RemoteAddr 斷言工廠:根據(jù)請(qǐng)求的遠(yuǎn)程地址進(jìn)行匹配,可以使用 IP 地址或 IP 地址段。

  8. Weight 斷言工廠:根據(jù)請(qǐng)求的權(quán)重進(jìn)行路由,用于實(shí)現(xiàn)負(fù)載均衡。

  9. CloudFoundryRouteService 斷言工廠:根據(jù)請(qǐng)求的 Cloud Foundry 路由服務(wù)進(jìn)行匹配。

實(shí)際上 Spring Cloud Gateway 還提供了更多的斷言工廠,可以根據(jù)具體的需求選擇合適的斷言工廠來(lái)實(shí)現(xiàn)路由匹配。同時(shí),還可以通過(guò)自定義斷言工廠來(lái)擴(kuò)展和定制路由規(guī)則的匹配邏輯。

7. 總結(jié)

通過(guò)Gateway斷言工廠,我們可以根據(jù)請(qǐng)求的不同屬性來(lái)匹配和過(guò)濾路由請(qǐng)求。除了使用內(nèi)置的斷言工廠,我們還可以自定義斷言工廠來(lái)滿足特定的需求。使用Gateway斷言工廠,可以幫助我們實(shí)現(xiàn)更加靈活和精確的路由策略。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-727906.html

到了這里,關(guān)于Spring Cloud Gateway快速入門(二)——斷言工廠的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第九章 : Spring cloud 網(wǎng)關(guān)中心 Gateway (內(nèi)置斷言與自定義斷言)

    第九章 : Spring cloud 網(wǎng)關(guān)中心 Gateway (內(nèi)置斷言與自定義斷言) 前言 本章知識(shí)點(diǎn):Spring cloud Gateway 內(nèi)置斷言(Predicate)類型的 yaml 和 json 數(shù)據(jù)格式;自定義路由Predicate 斷言的案例。 Gateway 內(nèi)置 Predicate 格式配置 概述 本文針對(duì) Spring Cloud Gateway 框架中斷言(Predicate)類型在 Yaml

    2024年01月17日
    瀏覽(25)
  • 【深入解析spring cloud gateway】02 網(wǎng)關(guān)路由斷言

    【深入解析spring cloud gateway】02 網(wǎng)關(guān)路由斷言

    斷言是路由配置的一部分,當(dāng)斷言條件滿足,即執(zhí)行Filter的邏輯,如下例所示 當(dāng)請(qǐng)求路徑滿足條件/red/,即添加頭信息:X-Request-Red,value為Blue-{segment},segment是路徑里面帶的信息。 gateWay的主要功能之一是轉(zhuǎn)發(fā)請(qǐng)求,轉(zhuǎn)發(fā)規(guī)則的定義主要包含三個(gè)部分 Route(路由) 路由是網(wǎng)關(guān)

    2024年02月09日
    瀏覽(28)
  • Spring Cloud Gateway內(nèi)置的斷言和過(guò)濾器作用

    對(duì)應(yīng)版本3.1.7對(duì)應(yīng)SpringCloud版本2021.0.7 AfterRoutePredicateFactory 作用:判斷當(dāng)請(qǐng)求時(shí)間是否在指定配置時(shí)間之后 使用方式 使用場(chǎng)景:當(dāng)上線一新服務(wù)時(shí)在未來(lái)某個(gè)時(shí)間提供服務(wù) 兩種配置方式的區(qū)別: 第一種便捷方式配置的值是按逗號(hào)分隔,再按shortcutFieldOrder方法返回的字段順序

    2024年02月06日
    瀏覽(26)
  • Spring Cloud Gateway系例—GatewayFilter 工廠

    目錄 6.1.AddRequestHeader 6.2.AddRequestHeadersIfNotPresent 6.3.AddRequestParameter 6.4.AddResponseHeader 6.5.CircuitBreaker 6.5.1. 熔斷指定的狀態(tài)碼 6.6.CacheRequestBody 6.7.DedupeResponseHeader 6.8.FallbackHeaders 6.9.JsonToGrpc 6.10.LocalResponseCache 6.11.MapRequestHeader 6.12.ModifyRequestBody 6.13.ModifyResponseBody 6.14.PrefixPath 6.15.Preser

    2024年02月13日
    瀏覽(42)
  • 【Spring Cloud】網(wǎng)關(guān)Gateway的請(qǐng)求過(guò)濾工廠RequestRateLimiterGatewayFilterFactory

    【Spring Cloud】網(wǎng)關(guān)Gateway的請(qǐng)求過(guò)濾工廠RequestRateLimiterGatewayFilterFactory

    ??????? 關(guān)于微服務(wù)網(wǎng)關(guān)Gateway中有幾十種過(guò)濾工廠,這一篇博文記錄的是關(guān)于請(qǐng)求限流過(guò)濾工廠,也就是標(biāo)題中的RequestRateLimiterGatewayFilterFactory。這個(gè)路由過(guò)濾工廠是 用來(lái)判斷當(dāng)前請(qǐng)求是否應(yīng)該被處理,如果不會(huì)被處理就會(huì)返回HTTP狀態(tài)碼為429的code 。接下來(lái)構(gòu)建兩個(gè)模塊,

    2024年02月07日
    瀏覽(17)
  • 【springcloud 微服務(wù)】Spring Cloud 微服務(wù)網(wǎng)關(guān)Gateway使用詳解

    目錄 一、微服務(wù)網(wǎng)關(guān)簡(jiǎn)介 1.1 網(wǎng)關(guān)的作用 1.2 常用網(wǎng)關(guān) 1.2.1 傳統(tǒng)網(wǎng)關(guān) 1.2.2?云原生網(wǎng)關(guān)

    2023年04月16日
    瀏覽(31)
  • 【SpringCloud】11、Spring Cloud Gateway使用Sentinel實(shí)現(xiàn)服務(wù)限流

    1、關(guān)于 Sentinel Sentinel 是阿里巴巴開源的一個(gè)流量防衛(wèi)防護(hù)組件,可以為微服務(wù)架構(gòu)提供強(qiáng)大的流量防衛(wèi)能力,包括流量控制、熔斷降級(jí)等功能。Spring Cloud Gateway 與 Sentinel 結(jié)合,可以實(shí)現(xiàn)強(qiáng)大的限流功能。 Sentinel 具有以下特性: 豐富的應(yīng)用場(chǎng)景:Sentinel 承接了阿里巴巴近

    2024年02月01日
    瀏覽(23)
  • Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】

    Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳轉(zhuǎn) Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 跳轉(zhuǎn) Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 跳轉(zhuǎn) Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 跳轉(zhuǎn) Java之SpringCloud Alibaba【五】【微服務(wù)

    2024年02月06日
    瀏覽(34)
  • Spring Cloud Gateway的快速使用

    Spring Cloud Gateway的快速使用

    環(huán)境前置搭建Nacos:點(diǎn)擊跳轉(zhuǎn) Spring Cloud Gateway Docs 新建gateway網(wǎng)關(guān)模塊 pom.xml 導(dǎo)入依賴 ? ? 編寫啟動(dòng)類 GatewayApplication.java (不是新模塊就不用編寫) ? ? application.yml 配置gateway ? ? 完成以上配置,直接啟動(dòng)即可,訪問 http://localhost:10010 ? ? GatewayFilter Factories 過(guò)濾器工廠:Gat

    2024年02月11日
    瀏覽(19)
  • 【SpringCloud】微服務(wù)技術(shù)棧入門3 - Gateway快速上手

    【SpringCloud】微服務(wù)技術(shù)棧入門3 - Gateway快速上手

    WebFlux gateway 基于 webflux 構(gòu)建 WebFlux 是基于反應(yīng)式流概念的響應(yīng)式編程框架,用于構(gòu)建異步非阻塞的 Web 應(yīng)用程序。它支持響應(yīng)式編程范式,并提供了一種響應(yīng)式的方式來(lái)處理 Web 請(qǐng)求。 與傳統(tǒng)的 Servlet API 相比,WebFlux 采用了基于事件驅(qū)動(dòng)的編程模型,不依賴于傳統(tǒng)的線程池模

    2024年02月07日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包