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

SpringBoot 3.0 新特性,內(nèi)置聲明式HTTP客戶端

這篇具有很好參考價值的文章主要介紹了SpringBoot 3.0 新特性,內(nèi)置聲明式HTTP客戶端。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

http interface

從 Spring 6 和 Spring Boot 3 開始,Spring 框架支持將遠(yuǎn)程 HTTP 服務(wù)代理成帶有特定注解的 Java http interface。類似的庫,如 OpenFeign 和 Retrofit 仍然可以使用,但 http interface 為 Spring 框架添加內(nèi)置支持。

什么是聲明式客戶端

聲明式 http 客戶端主旨是使得編寫 java http 客戶端更容易。為了貫徹這個理念,采用了通過處理注解來自動生成請求的方式(官方稱呼為聲明式、模板化)。通過聲明式 http 客戶端實現(xiàn)我們就可以在 java 中像調(diào)用一個本地方法一樣完成一次 http 請求,大大減少了編碼成本,同時提高了代碼可讀性。

  • 舉個例子,如果想調(diào)用 /tenants 的接口,只需要定義如下的接口類即可
public interface TenantClient {

  @GetExchange("/tenants")
  Flux<User> getAll();
}

Spring 會在運(yùn)行時提供接口的調(diào)用的具體實現(xiàn),如上請求我們可以如 Java 方法一樣調(diào)用


@Autowired
TenantClient tenantClient;

tenantClient.getAll().subscribe(

);

測試使用

1. maven 依賴

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- For webclient support -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

如下圖: 目前官方只提供了非阻塞 webclient 的 http interface 實現(xiàn),所以依賴中我們需要添加 webflux
SpringBoot 3.0 新特性,內(nèi)置聲明式HTTP客戶端

2. 創(chuàng)建 Http interface 類型

  • 需要再接口類上添加 @HttpExchange 聲明此類事 http interface 端點
@HttpExchange
public interface DemoApi {

    @GetExchange("/admin/tenant/list")
    String list();

  • 方法上支持如下注解
@GetExchange:  for HTTP GET requests.
@PostExchange:  for HTTP POST requests.
@PutExchange: for HTTP PUT requests.
@DeleteExchange: for HTTP DELETE requests.
@PatchExchange:  for HTTP PATCH requests.
  • 方法參數(shù)支持的注解
@PathVariable: 占位符參數(shù).
@RequestBody: 請求body.
@RequestParam: 請求參數(shù).
@RequestHeader: 請求頭.
@RequestPart: 表單請求.
@CookieValue: 請求cookie.

2. 注入聲明式客戶端

  • 通過給 HttpServiceProxyFactory 注入攜帶目標(biāo)接口 baseUrl 的的 webclient,實現(xiàn) webclient 和 http interface 的關(guān)聯(lián)
    @Bean
    DemoApi demoApi() {
        WebClient client = WebClient.builder().baseUrl("http://pigx.pigx.vip/").build();
        HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(client)).build();
        return factory.createClient(DemoApi.class);
    }

3. 單元測試調(diào)用 http interface


@SpringBootTest
class DemoApplicationTests {
	@Autowired
	private DemoApi demoApi;

	@Test
	void testDemoApi() {
		demoApi.list();
	}
}

基于Spring Boot 2.7、 Spring Cloud 2021 & Alibaba、 SAS OAuth2 一個可支持企業(yè)各業(yè)務(wù)系統(tǒng)或產(chǎn)品快速開發(fā)實現(xiàn)的開源微服務(wù)應(yīng)用開發(fā)平臺文章來源地址http://www.zghlxwxcb.cn/news/detail-428470.html

到了這里,關(guān)于SpringBoot 3.0 新特性,內(nèi)置聲明式HTTP客戶端的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【微服務(wù)】5、聲明式 HTTP 客戶端 —— Feign

    【微服務(wù)】5、聲明式 HTTP 客戶端 —— Feign

    ?? 代碼可讀性差、編程體驗不統(tǒng)一 ?? 當(dāng)發(fā)送網(wǎng)絡(luò)請求時的請求參數(shù)特別復(fù)雜的時候,URL 難以維護(hù) ?? Github 地址:https://github.com/OpenFeign/feign ?? Feign 是一個 聲明式 的 HTTP 客戶端 ?? 可幫助開發(fā)者優(yōu)雅地發(fā)送 HTTP 請求 ?? 依賴 ?? 啟動開關(guān) @EnableFeignClients ??

    2023年04月12日
    瀏覽(18)
  • 7、hive shell客戶端與屬性配置、內(nèi)置運(yùn)算符、函數(shù)(內(nèi)置運(yùn)算符與自定義UDF運(yùn)算符)

    7、hive shell客戶端與屬性配置、內(nèi)置運(yùn)算符、函數(shù)(內(nèi)置運(yùn)算符與自定義UDF運(yùn)算符)

    1、apache-hive-3.1.2簡介及部署(三種部署方式-內(nèi)嵌模式、本地模式和遠(yuǎn)程模式)及驗證詳解 2、hive相關(guān)概念詳解–架構(gòu)、讀寫文件機(jī)制、數(shù)據(jù)存儲 3、hive的使用示例詳解-建表、數(shù)據(jù)類型詳解、內(nèi)部外部表、分區(qū)表、分桶表 4、hive的使用示例詳解-事務(wù)表、視圖、物化視圖、DDL

    2024年02月09日
    瀏覽(20)
  • Redis 6.0的新特性:多線程、客戶端緩存與安全

    Redis 6.0的新特性:多線程、客戶端緩存與安全

    2020年5月份,6.0版本。 面向網(wǎng)絡(luò)處理的多IO線程可以提高網(wǎng)絡(luò)請求處理的速度,而客戶端緩存可以讓應(yīng)用直接在客戶端本地讀取數(shù)據(jù),這兩個特性可以提升Redis的性能。 細(xì)粒度權(quán)限控制讓Redis可以按照命令粒度控制不同用戶的訪問權(quán)限,加強(qiáng)了Redis的安全保護(hù)。 RESP 3協(xié)議則增強(qiáng)

    2024年02月14日
    瀏覽(19)
  • Apache IoTDB v1.3.0 發(fā)布|增加客戶端服務(wù)器 SSL 通訊加密、寫入負(fù)數(shù)時間戳等功能...

    Apache IoTDB v1.3.0 發(fā)布|增加客戶端服務(wù)器 SSL 通訊加密、寫入負(fù)數(shù)時間戳等功能...

    Release Announcement ? Version 1.3.0?? Apache IoTDB v1.3.0 已經(jīng)發(fā)布,主要新增 SSL 通訊加密、數(shù)據(jù)同步監(jiān)控項統(tǒng)計等新特性,優(yōu)化了原有權(quán)限模塊的語法和邏輯、metrics 算法庫性能、Python 客戶端寫入性能以及在部分查詢場景下的查詢效率,修復(fù)部分產(chǎn)品 bug 和性能問題。 歡迎在我們的網(wǎng)

    2024年01月17日
    瀏覽(48)
  • http客戶端Fegin

    http客戶端Fegin

    代碼可讀性差,編程體驗不統(tǒng)一 參數(shù)復(fù)雜URL難以維護(hù) Feign是聲明式的http客戶端(只需要將發(fā)http請求的信息寫出即可) ?主要基于SpringMvc的注解來聲明遠(yuǎn)程調(diào)用的信息: ?步驟: 1.引入依賴 2.添加EnableFeignClients注解 3.編寫FeignClient接口 4.使用FeigClient中定義的方法代替RestTempl

    2024年02月09日
    瀏覽(16)
  • 39 | Redis 6.0的新特性:多線程、客戶端緩存與安全

    39 | Redis 6.0的新特性:多線程、客戶端緩存與安全

    這個版本中有很多的新特性。所以,6.0 剛剛推出,就受到了業(yè)界的廣泛關(guān)注。所以,在課程的最后, 這節(jié)想來聊聊 Redis 6.0 中的幾個關(guān)鍵新特性,分別是面向網(wǎng)絡(luò)處理的多 IO 線程、客戶端緩存、細(xì)粒度的權(quán)限控制,以及 RESP 3 協(xié)議的使用。 其中,面向網(wǎng)絡(luò)處理的多 IO 線程可

    2024年04月10日
    瀏覽(22)
  • SOAP學(xué)習(xí)之一:Visual C++創(chuàng)建簡單的客戶端--使用soap toolkit 3.0獲取UTC服務(wù)器時間

    初始接觸 XML及SOAP第一天,摸不著頭緒,看了很多文章,總結(jié)一下幾點心得,附一個小例子使用VC++控制臺程序獲取UTC服務(wù)器時間。 看到的資料VC++都是使用soap toolkit來使用SOAP,soap toolkit目前看最高版本應(yīng)該是3.0,但是微軟已經(jīng)不再對soap toolkit提供技術(shù)支持及更新,在微軟官網(wǎng)

    2024年02月09日
    瀏覽(22)
  • 微服務(wù)——http客戶端Feign

    微服務(wù)——http客戶端Feign

    目錄 Restemplate方式調(diào)用存在的問題 Feign的介紹 基于Feign遠(yuǎn)程調(diào)用 Feign自定義配置 修改日志方式一(基于配置文件) 修改日志方式二(基于java代碼) Feign的性能優(yōu)化 連接池使用方法? Feign_最佳實踐分析? ?方式一: 方式二 ?實現(xiàn)Feign最佳實踐(方式二) ?兩種解決方案 就像早期的事務(wù)

    2024年02月15日
    瀏覽(43)
  • 【W(wǎng)ebClient】客戶端HTTP 超時配置

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 1、項目升級到Springboot3,使用WebFlux自帶的WebClient作為HTTP客戶端 2、接口類客戶端方式調(diào)用外部服務(wù),默認(rèn)超時5S 3、需根據(jù)業(yè)務(wù)動態(tài)修改超時時間,如60S 報錯如下: java.lang.IllegalStateException: Timeout on bl

    2024年02月12日
    瀏覽(34)
  • Http客戶端OkHttp的基本使用

    OkHttp是一個強(qiáng)大的開源HTTP客戶端,它被廣泛用于Android和Java應(yīng)用程序中。OkHttp具有簡單易用的API,提供了許多高級功能,如連接池、請求壓縮和緩存等。 要使用OkHttp,需要在項目的構(gòu)建文件中添加以下依賴: 請將 x.x.x 替換為您希望使用的OkHttp版本號。 GET請求 以下是發(fā)送G

    2024年02月09日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包