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

Spring 教程—REST 客戶端詳解(WebClient 、RestTemplate、HTTP 接口)

這篇具有很好參考價值的文章主要介紹了Spring 教程—REST 客戶端詳解(WebClient 、RestTemplate、HTTP 接口)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring框架為調(diào)用REST端點提供了以下選擇:

  • WebClient?- 非阻塞、響應(yīng)式客戶端和 fluent API。
  • RestTemplate?- 帶有模板方法API的同步客戶端。
  • HTTP 接口?- 注解式接口,并生成動態(tài)代理實現(xiàn)。

一、?WebClient

WebClient?是一個非阻塞的、響應(yīng)式的客戶端,用于執(zhí)行HTTP請求。它在5.0中引入,提供了?RestTemplate?的替代方案,支持同步、異步和流式場景。

WebClient?支持以下特性:

  • 非阻塞 I/O。

  • Reactive Streams 背壓。

  • 以較少的硬件資源實現(xiàn)高并發(fā)性。

  • 函數(shù)式、fluent API,利用了Java 8 lambdas的優(yōu)勢。

  • 同步和異步互動。

  • 服務(wù)器的流式上傳和下載。

詳情見WebClient 原理及實踐—官方原版

二、RestTemplate

RestTemplate?提供了一個比HTTP客戶端庫更高層次的API。它使得在一行中調(diào)用REST端點變得容易。它暴露了以下幾組重載方法:?

Table 1. RestTemplate methods
方法組 說明

getForObject

通過 GET 檢索一個表示結(jié)果。

getForEntity

通過使用GET檢索一個?ResponseEntity(即 status、header 和 body)。

headForHeaders

通過使用?HEAD?檢索一個資源的所有 header。

postForLocation

通過使用 POST 創(chuàng)建一個新的資源,并從響應(yīng)中返回?Location?header。

postForObject

通過使用POST創(chuàng)建一個新資源,并從響應(yīng)中返回表示。

postForEntity

通過使用POST創(chuàng)建一個新資源,并從響應(yīng)中返回表示。

put

通過使用PUT創(chuàng)建或更新一個資源。

patchForObject

通過使用 PATCH 更新一個資源,并從響應(yīng)中返回表示。請注意,JDK的?HttpURLConnection?不支持?PATCH,但 Apache 的 HttpComponents 和其他的支持。

delete

通過使用 DELETE 刪除指定URI上的資源。

optionsForAllow

通過使用 ALLOW 為資源檢索允許的HTTP方法。

exchange

前面的方法的更通用(和更少的意見)版本,在需要時提供額外的靈活性。它接受一個?RequestEntity(包括HTTP方法、URL、header 和 body 作為輸入)并返回一個?ResponseEntity。

這些方法允許使用?ParameterizedTypeReference?而不是?Class?來指定一個具有泛型的響應(yīng)類型。

execute

執(zhí)行請求的最通用方式,通過回調(diào)接口對請求準備和響應(yīng)提取進行完全控制。

1、初始化

默認構(gòu)造函數(shù)使用?java.net.HttpURLConnection?來執(zhí)行請求。你可以通過?ClientHttpRequestFactory?的實現(xiàn)切換到不同的HTTP庫。有內(nèi)置的對以下內(nèi)容的支持:

  • Apache HttpComponents

  • Netty

  • OkHttp

例如,要切換 到Apache HttpComponents,你可以使用以下方法:

RestTemplate template = new RestTemplate(new HttpComponentsClientHttpRequestFactory());

每個?ClientHttpRequestFactory?都公開了底層HTTP客戶端庫的特定配置選項—?例如,對于憑證、連接池和其他細節(jié)。

URI

許多?RestTemplate?方法接受URI模板和URI模板變量,或者作為一個?String?變量參數(shù),或者作為?Map<String,String>

下面的例子使用了一個?String?變量的參數(shù):

String result = restTemplate.getForObject(
        "https://example.com/hotels/{hotel}/bookings/{booking}", String.class, "42", "21");

下面的例子使用一個?Map<String, String>

Map<String, String> vars = Collections.singletonMap("hotel", "42");

String result = restTemplate.getForObject(
        "https://example.com/hotels/{hotel}/rooms/{hotel}", String.class, vars);

請記住URI模板是自動編碼的,如下例所示:

restTemplate.getForObject("https://example.com/hotel list", String.class);

// Results in request to "https://example.com/hotel%20list"

你可以使用?RestTemplate?的?uriTemplateHandler?屬性來定制URI的編碼方式。或者,你可以準備一個?java.net.URI,并把它傳入接受?URI?的?RestTemplate?方法之一。

Header

你可以使用?exchange()?方法來指定 header,如下例所示:

String uriTemplate = "https://example.com/hotels/{hotel}";
URI uri = UriComponentsBuilder.fromUriString(uriTemplate).build(42);

RequestEntity<Void> requestEntity = RequestEntity.get(uri)
        .header("MyRequestHeader", "MyValue")
        .build();

ResponseEntity<String> response = template.exchange(requestEntity, String.class);

String responseHeader = response.getHeaders().getFirst("MyResponseHeader");
String body = response.getBody();

你可以通過許多返回?ResponseEntity?的?RestTemplate?方法變體獲得響應(yīng)頭信息。

2、Body

在?HttpMessageConverter?的幫助下,傳入?RestTemplate?方法和從?RestTemplate?方法返回的對象被轉(zhuǎn)換為原始內(nèi)容。

在POST中,一個輸入對象被序列化到請求體中,如下面的例子所示:

URI location = template.postForLocation("https://example.com/people", person);

你不需要明確地設(shè)置請求的?Content-Type?頭。在大多數(shù)情況下,你可以根據(jù)源對象類型找到一個兼容的消息轉(zhuǎn)換器(message converter),所選擇的消息轉(zhuǎn)換器會相應(yīng)地設(shè)置 content type。如果有必要,你可以使用?exchange?方法來明確地提供?Content-Type?的請求頭,而這又會影響到選擇何種消息轉(zhuǎn)換器。

在一個GET中,響應(yīng)的 body 被反序列化為一個輸出?Object,如下例所示:

Person person = restTemplate.getForObject("https://example.com/people/{id}", Person.class, 42);

請求的 Accept 標頭不需要明確設(shè)置。在大多數(shù)情況下,可以根據(jù)預(yù)期的響應(yīng)類型找到一個兼容的消息轉(zhuǎn)換器,然后幫助填充 Accept 頭。如果有必要,你可以使用 exchange 方法來明確提供 Accept 頭。 默認情況下,RestTemplate 注冊了所有內(nèi)置的 消息轉(zhuǎn)換器(message converter),這取決于 classpath 檢查,有助于確定有哪些可選的 converter 庫存在。你也可以明確地設(shè)置要使用的消息轉(zhuǎn)換器。

消息轉(zhuǎn)換

spring-web?模塊包含?HttpMessageConverter?contract,用于通過?InputStream?和?OutputStream?讀寫 HTTP 請求和響應(yīng)的 body。HttpMessageConverter?實例在客戶端(例如,在?RestTemplate?中)和服務(wù)器端(例如,在Spring MVC REST controller 中)使用。

框架中提供了主要 type(MIME)type 的具體實現(xiàn),默認情況下,在客戶端與?RestTemplate?注冊,在服務(wù)器端與?RequestMappingHandlerAdapter?注冊

HttpMessageConverter?的實現(xiàn)將在下面幾節(jié)中描述。對于所有的轉(zhuǎn)換器,都使用默認的 media type,但是你可以通過設(shè)置?supportedMediaTypes?bean 屬性來覆蓋它。下表描述了每個實現(xiàn):

Table 2. HttpMessageConverter 實現(xiàn)
MessageConverter 說明

StringHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),可以從HTTP請求和響應(yīng)中讀寫?String?實例。默認情況下,這個轉(zhuǎn)換器支持所有的文本媒體類型(text/*),并以?text/plain?的?Content-Type?進行寫入。

FormHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),可以從HTTP請求和響應(yīng)中讀寫表單數(shù)據(jù)。默認情況下,這個轉(zhuǎn)換器讀取和寫入?application/x-www-form-urlencoded?媒體類型。表單數(shù)據(jù)從一個?MultiValueMap<String, String>?中讀取并寫入。該轉(zhuǎn)換器還可以寫入(但不讀?。?MultiValueMap<String, Object>?中讀取的 multipart 數(shù)據(jù)。默認情況下,支持?multipart/form-data。從Spring Framework 5.2開始,可以支持額外的 multipart subtype 來寫入表單數(shù)據(jù)。請查閱?FormHttpMessageConverter?的 javadoc 以了解更多細節(jié)。

ByteArrayHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),可以從HTTP請求和響應(yīng)中讀寫字節(jié)數(shù)。默認情況下,這個轉(zhuǎn)換器支持所有的 media type(*/*),并以?application/octet-stream?為?Content-Type?進行寫入。你可以通過設(shè)置?supportedMediaTypes?屬性和覆蓋?getContentType(byte[])?來重寫這一點。

MarshallingHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),通過使用?org.springframework.oxm?包中 Spring 的?Marshaller?和?Unmarshaller?抽象,可以讀寫XML。這個轉(zhuǎn)換器在使用前需要一個?Marshaller?和?Unmarshaller。你可以通過構(gòu)造函數(shù)或Bean屬性注入這些東西。默認情況下,這個轉(zhuǎn)換器支持?text/xml?和?application/xml。

MappingJackson2HttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),通過使用 Jackson 的?ObjectMapper?可以讀寫JSON。你可以通過使用Jackson提供的注解,根據(jù)需要定制JSON映射。當你需要進一步控制時(對于需要為特定類型提供自定義JSON serializers/deserializers 的情況),你可以通過?ObjectMapper?屬性注入一個自定義?ObjectMapper。默認情況下,這個轉(zhuǎn)換器支持?application/json。

MappingJackson2XmlHttpMessageConverter

一個?HttpMessageConverter?的實現(xiàn),可以通過使用?Jackson XML?擴展的?XmlMapper?來讀寫XML。你可以根據(jù)需要通過使用JAXB或Jackson提供的注解來定制XML映射。當你需要進一步控制時(對于需要為特定類型提供自定義XML serializers/deserializers 的情況),你可以通過?ObjectMapper?屬性注入一個自定義?XmlMapper。默認情況下,這個轉(zhuǎn)換器支持?application/xml。

SourceHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),可以從HTTP請求和響應(yīng)中讀寫?javax.xml.transform.Source。只有?DOMSource、SAXSource?和?StreamSource?被支持。默認情況下,這個轉(zhuǎn)換器支持?text/xml?和?application/xml

BufferedImageHttpMessageConverter

一個?HttpMessageConverter?實現(xiàn),可以從HTTP請求和響應(yīng)中讀寫?java.awt.image.BufferedImage。這個轉(zhuǎn)換器讀取和寫入Java I/O API支持的 media type。

3、Jackson JSON 視圖

你可以指定一個 Jackson JSON 視圖 來只序列化對象屬性的一個子集,如下面的例子所示:

MappingJacksonValue value = new MappingJacksonValue(new User("eric", "7!jd#h23"));
value.setSerializationView(User.WithoutPasswordView.class);

RequestEntity<MappingJacksonValue> requestEntity =
    RequestEntity.post(new URI("https://example.com/user")).body(value);

ResponseEntity<String> response = template.exchange(requestEntity, String.class);

4、Multipart

為了發(fā)送 multipart 數(shù)據(jù),你需要提供一個?MultiValueMap<String, Object>,其值可以是一個用于 part 內(nèi)容的?Object,一個用于文件 part 的?Resource,或者一個用于帶有 header 的 part 內(nèi)容的?HttpEntity。比如說:

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();

parts.add("fieldPart", "fieldValue");
parts.add("filePart", new FileSystemResource("...logo.png"));
parts.add("jsonPart", new Person("Jason"));

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
parts.add("xmlPart", new HttpEntity<>(myBean, headers));

在大多數(shù)情況下,你不需要為每個 part 指定?Content-Type。content type 是根據(jù)為序列化它而選擇的?HttpMessageConverter?自動確定的,或者在?Resource?的情況下,根據(jù)文件擴展名確定。如果有必要,你可以用一個?HttpEntity?wrapper 明確地提供?MediaType。

一旦?MultiValueMap?準備好了,你就可以把它傳遞給?RestTemplate,如下所示:

MultiValueMap<String, Object> parts = ...;
template.postForObject("https://example.com/upload", parts, Void.class);

如果?MultiValueMap?至少包含一個非?String?值,Content-Type?就被?FormHttpMessageConverter?設(shè)置為?multipart/form-data。如果?MultiValueMap?有?String?值,Content-Type?被默認為?application/x-www-form-urlencoded。如果有必要,也可以明確設(shè)置?Content-Type。

三、HTTP 接口

Spring框架允許你將HTTP服務(wù)定義為一個Java接口,并為 HTTP exchange 提供注解方法。然后你可以生成一個實現(xiàn)該接口并執(zhí)行 exchange 的代理。這有助于簡化HTTP遠程訪問,因為遠程訪問通常涉及到一個 facade,該 facade 包裝了使用底層HTTP客戶端的細節(jié)。

聲明一個帶有?@HttpExchange?方法的接口:

interface RepositoryService {

    @GetExchange("/repos/{owner}/{repo}")
    Repository getRepository(@PathVariable String owner, @PathVariable String repo);

    // more HTTP exchange methods...

}

創(chuàng)建一個代理,執(zhí)行所聲明的 HTTP exchange:

WebClient client = WebClient.builder().baseUrl("https://api.github.com/").build();
HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(client)).build();

RepositoryService service = factory.createClient(RepositoryService.class);

在類型層面上支持?@HttpExchange,它適用于所有方法:

@HttpExchange(url = "/repos/{owner}/{repo}", accept = "application/vnd.github.v3+json")
interface RepositoryService {

    @GetExchange
    Repository getRepository(@PathVariable String owner, @PathVariable String repo);

    @PatchExchange(contentType = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    void updateRepository(@PathVariable String owner, @PathVariable String repo,
            @RequestParam String name, @RequestParam String description, @RequestParam String homepage);

}

1、方法參數(shù)

注解式 HTTP exchange 方法支持靈活的方法簽名,有以下方法參數(shù):

方法參數(shù) 說明

URI

動態(tài)設(shè)置請求的URL,覆蓋注解的?url?屬性。

HttpMethod

動態(tài)地設(shè)置請求的HTTP方法,覆蓋注解的?method?屬性

@RequestHeader

添加一個請求頭或多個頭。參數(shù)可以是一個?Map<String, ?>?或?MultiValueMap<String, ?>?的多個頭,一個?Collection<?>,或一個單獨的值。對于非?String?值,支持類型轉(zhuǎn)換。

@PathVariable

添加一個變量,用于在請求URL中擴展一個占位符。參數(shù)可以是一個帶有多個變量的?Map<String, ?>,也可以是一個單獨的值。對于非?String?值,支持類型轉(zhuǎn)換。

@RequestBody

提供請求的 body,可以是要被序列化的對象,也可以是Reactive Streams?Publisher,如?Mono、Flux,或通過配置的?ReactiveAdapterRegistry?支持的任何其他異步類型。

@RequestParam

添加一個請求參數(shù)或多個參數(shù)。參數(shù)可以是一個?Map<String, ?>?或?MultiValueMap<String, ?>?的多個參數(shù),一個?Collection<?>?,或一個單獨的值。對于非?String?值,支持類型轉(zhuǎn)換。

當?"content-type"?被設(shè)置為?"application/x-www-form-urlencoded"?時,請求參數(shù)被編碼在請求體中。否則,它們被添加為URL查詢參數(shù)。

@RequestPart

添加一個 request part,它可以是一個?String(表單字段)、Resource(文件 part)、對象(要編碼的實體,如JSON)、HttpEntity(part 內(nèi)容和 header)、Spring?Part?或上述任何一個的 Reactive Streams?Publisher。

@CookieValue

添加一個或多個cookie。參數(shù)可以是一個?Map<String, ?>?或?MultiValueMap<String, ?>?的多個cookie,一個?Collection<?>,或一個單獨的值。對于非?String?值,支持類型轉(zhuǎn)換。

2、返回值

注解式 HTTP exchange 方法支持以下返回值:

方法返回值 說明

void,?Mono<Void>

執(zhí)行給定的請求,并釋放響應(yīng)內(nèi)容,如果有的話。

HttpHeaders,?Mono<HttpHeaders>

執(zhí)行給定的請求,釋放響應(yīng)內(nèi)容(如果有),并返回響應(yīng)頭信息。

<T>,?Mono<T>

執(zhí)行給定的請求并將響應(yīng)內(nèi)容解碼為聲明的返回類型。

<T>,?Flux<T>

執(zhí)行給定的請求,并將響應(yīng)內(nèi)容解碼為聲明的元素類型的流。

ResponseEntity<Void>,?Mono<ResponseEntity<Void>>

執(zhí)行給定的請求,并釋放響應(yīng)內(nèi)容(如果有的話),并返回一個帶有狀態(tài)和頭信息的?ResponseEntity。

ResponseEntity<T>,?Mono<ResponseEntity<T>>

執(zhí)行給定的請求,將響應(yīng)內(nèi)容解碼為聲明的返回類型,并返回一個帶有狀態(tài)、頭信息和解碼后的 body 的?ResponseEntity。

Mono<ResponseEntity<Flux<T>>

執(zhí)行給定的請求,將響應(yīng)內(nèi)容解碼為聲明的元素類型的流,并返回一個帶有狀態(tài)、頭信息和解碼后的響應(yīng)體流的?ResponseEntity

3、異常處理

默認情況下,WebClient?會對 4xx 和 5xx HTTP狀態(tài)代碼引發(fā)?WebClientResponseException。要定制這一點,你可以注冊一個響應(yīng)狀態(tài) handler,適用于通過客戶端執(zhí)行的所有響應(yīng):

WebClient webClient = WebClient.builder()
        .defaultStatusHandler(HttpStatusCode::isError, resp -> ...)
        .build();

WebClientAdapter clientAdapter = WebClientAdapter.forClient(webClient);
HttpServiceProxyFactory factory = HttpServiceProxyFactory
        .builder(clientAdapter).build();

關(guān)于更多的細節(jié)和選項,例如抑制錯誤狀態(tài)代碼,請參見?WebClient.Builder?中?defaultStatusHandler?的 Javadoc。

大家好,我是Doker品牌的Sinbad,歡迎點贊和評論,您的鼓勵是我們持續(xù)更新的動力!歡迎加微信進入技術(shù)群聊!文章來源地址http://www.zghlxwxcb.cn/news/detail-728874.html

到了這里,關(guān)于Spring 教程—REST 客戶端詳解(WebClient 、RestTemplate、HTTP 接口)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Spring Cloud(Finchley版本)系列教程(二) 客戶端負載均衡Ribbon

    Spring Cloud(Finchley版本)系列教程(二) 客戶端負載均衡Ribbon

    Spring Cloud(Finchley版本)系列教程(二) 客戶端負載均衡Ribbon 目前主流的負載均衡方案有兩種,一種是集中式均衡負載,在消費者與服務(wù)提供者之間使用獨立的代理方式進行負載,比如F5、Nginx等。另一種則是客戶端自己做負載均衡,根據(jù)自己的請求做負載,Ribbon就屬于客戶端自己

    2024年02月09日
    瀏覽(47)
  • Spring MVC學習隨筆-控制器(Controller)開發(fā)詳解:接受客戶端(Client)請求參數(shù)

    Spring MVC學習隨筆-控制器(Controller)開發(fā)詳解:接受客戶端(Client)請求參數(shù)

    學習視頻:孫哥說SpringMVC:結(jié)合Thymeleaf,重塑你的MVC世界!|前所未有的Web開發(fā)探索之旅 ?? 1. 接受客戶端(client)請求參數(shù)[講解]2. 調(diào)用業(yè)務(wù)對象3. 頁面跳轉(zhuǎn) 所謂簡單變量:指的就是8種基本類型+String這些類型的變量。把這些類型的變量,作為控制器方法的形參,用于接受

    2024年02月05日
    瀏覽(39)
  • es相關(guān)的官方客戶端與spring客戶端對比與介紹

    es相關(guān)的官方客戶端與spring客戶端對比與介紹

    es提供的 TransportClient 傳統(tǒng)的客戶端,基于TCP傳輸協(xié)議與Elasticsearch通信。 已經(jīng)被棄用,不推薦使用。 適用于Elasticsearch 5.x及以前的版本 因為Elasticsearch 6.x及以上版本已不再支持TCP Transport協(xié)議,TransportClient無法連接Elasticsearch集群。 RestHighLevelClient 是一個高級的REST客戶端,主要用于與

    2024年02月02日
    瀏覽(24)
  • Spring Cloud【Config客戶端配置與測試、Config客戶端之動態(tài)刷新 、什么是Spring Cloud Bus、Docker安裝RabbitMQ】(十)

    Spring Cloud【Config客戶端配置與測試、Config客戶端之動態(tài)刷新 、什么是Spring Cloud Bus、Docker安裝RabbitMQ】(十)

    ? 目錄 分布式配置中心_Config客戶端配置與測試 為什么要引入bootstrap?

    2024年02月15日
    瀏覽(18)
  • Msquic客戶端詳解

    Msquic客戶端詳解

    Msquic用起來還是很方便很直觀的 因為微軟喜歡玩句柄 所以很多對象都由如下形式提供 Tips:關(guān)于微軟為啥喜歡句柄請自行百度 ?我們來看看github官網(wǎng) 微軟給出的對象有哪些 下圖來自Msquic github ?下面這段解釋來自微軟github?msquic/API.md at main · microsoft/msquic · GitHub 這里一起貼出

    2024年02月06日
    瀏覽(21)
  • SVN客戶端使用教程

    SVN客戶端使用教程

    正式進入公司項目后,我們需要和同事進行協(xié)同開發(fā),此時代碼管理工具是必不可少的,目前常用的兩款工具是:SVN 和 Git。本人因為要搭建一個自動化測試的框架,對SVN和Git都不熟悉,在調(diào)研后選擇了操作更為簡單的代碼管理工具:SVN。 SVN是什么? 全稱Subversion,屬于集中

    2024年02月08日
    瀏覽(26)
  • Trojan客戶端使用教程

    此教程使用的是 Centos7 x86_64系統(tǒng) 使用此命令下載Trojan客戶端 官方版本(GitHub): cd /usr/src wget https://github.com/trojan-gfw/trojan/releases/download/v1.15.1/trojan-1.15.1-linux-amd64.tar.xz 解壓Trojan文件 tar xvf trojan-1.15.1-linux-amd64.tar.xz 打開配置文件 cd /usr/src/trojan vi config.json 按i進入編輯模式 run_typ

    2024年02月02日
    瀏覽(30)
  • 客戶端Git安裝教程

    客戶端Git安裝教程

    首先打開Git官網(wǎng)https://git-scm.com/ 然后選擇合適的版本去下載,我的電腦是64位的,查看自己電腦是什么操作系統(tǒng),右擊【我的電腦】—屬性? 就看到了 接下來就是雙擊下載好的安裝包,同意條款,選擇安裝路徑 然后就是選擇選項配置,按照默認的來就行,不用修改 第三個界

    2024年02月08日
    瀏覽(20)
  • Spring Boot 整合 Redis,使用 RedisTemplate 客戶端

    Spring Boot 整合 Redis,使用 RedisTemplate 客戶端

    1.1.1 添加依賴 redis 的依賴: 1.1.2 yml 配置文件 1.1.3 Config 配置文件 1.1.4 使用示例 注入 RedisTemplate,即可操作 Redis,簡單示例如下: 1.2.1 RedisTemplate 簡介 RedisTemplate 是 Spring Data Redis 項目的一部分,旨在簡化在Java應(yīng)用程序中使用 Redis 的過程。它提供了一組簡單的方法,可以在

    2024年02月09日
    瀏覽(28)
  • kafka客戶端應(yīng)用參數(shù)詳解

    kafka客戶端應(yīng)用參數(shù)詳解

    Kafka提供了非常簡單的客戶端API。只需要引入一個Maven依賴即可: 1、消息發(fā)送者主流程? 然后可以使用Kafka提供的Producer類,快速發(fā)送消息。 ? 整體來說,構(gòu)建Producer分為三個步驟: 設(shè)置Producer核心屬性 ?:Producer可選的屬性都可以由ProducerConfig類管理。比如ProducerConfig.BOOTST

    2024年02月07日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包