一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SpringCloud Feign遠(yuǎn)程調(diào)用公共類(lèi)抽取【SpringCloud系列4】

 程序員讀書(shū)空間 2023-04-14 發(fā)布于浙江

本文章是系列文章中的一篇,本文章實(shí)現(xiàn)的是 使用 FeignClient 來(lái)實(shí)現(xiàn)微服務(wù)之間的相互調(diào)用,將所有的 FeignClient 封裝在一起


>Java架構(gòu)攻城師目錄
>SpringCloud 項(xiàng)目基礎(chǔ)工程搭建 【SpringCloud系列1】


前循環(huán)查詢(xún)訂單詳情接口

Feign是一個(gè)聲明式的http客戶端,官方地址:

https://github.com/OpenFeign/feign

本項(xiàng)目中目前創(chuàng)建了兩個(gè)微服務(wù),order-service 訂單服務(wù);user-service用戶服務(wù),要實(shí)現(xiàn)的需求是在 訂單服務(wù)中,調(diào)用 user-service用戶服務(wù)的查詢(xún)用戶詳情接口。

FeignClient用來(lái)聲明一個(gè)接口是一個(gè)Feign客戶端,它可以輕松地與其他服務(wù)進(jìn)行通信,而無(wú)需編寫(xiě)大量的樣板代碼。

在SpringCloud 中,有兩中方式來(lái)實(shí)現(xiàn)微服務(wù)之間的相互調(diào)用:

使用RestTemplate進(jìn)行服務(wù)間的HTTP調(diào)用

RestTemplate是Spring提供的用于訪問(wèn)Rest服務(wù)的客戶端工具類(lèi)

RestTemplate restTemplate = new RestTemplate();String result = restTemplate.getForObject("http://SERVICE-PROVIDER/hello", String.class); 
特使用Feign進(jìn)行服務(wù)間的HTTP調(diào)用

@FeignClient(value = "SERVICE-PROVIDER")public interface HelloService {    @RequestMapping(value = "/hello", method = RequestMethod.GET)    String hello();}

如下圖是本實(shí)例實(shí)現(xiàn)的微服務(wù)的一個(gè)基本調(diào)用方式:

首先創(chuàng)建一個(gè)module,命名為feign-api

然后填寫(xiě) module 的基本信息 

然后刪除 自動(dòng)生成的多余的部分,留下空的項(xiàng)目


然后在 order-service 與 user-service 中添加 feign-api 的依賴(lài)如下

  <dependency>      <groupId>com.biglead</groupId>      <artifactId>feign-api</artifactId>      <version>1.0-SNAPSHOT</version>  </dependency>

然后在 feign-api 中添加 openfeign 的依賴(lài)如下

   <dependency>       <groupId>org.springframework.cloud</groupId>       <artifactId>spring-cloud-starter-openfeign</artifactId>   </dependency>
<!-- https:///artifact/org.springframework.cloud/spring-cloud-starter-loadbalancer --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
<!--httpClient連接池的依賴(lài) --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId>   </dependency>

Spring Cloud Starter OpenFeign 依賴(lài)是用于在 Spring Cloud 應(yīng)用程序中使用 OpenFeign 進(jìn)行聲明式 REST 調(diào)用的。

spring-cloud-starter-loadbalancer 它提供了一個(gè)輕量級(jí)的客戶端負(fù)載均衡器,可以用于在微服務(wù)架構(gòu)中進(jìn)行服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

Feign-HttpClient是一個(gè)Java HTTP客戶端,它是Feign庫(kù)的一部分,用于簡(jiǎn)化HTTP API客戶端的開(kāi)發(fā)。它允許您使用注釋來(lái)定義HTTP API,然后使用Feign-HttpClient來(lái)處理HTTP請(qǐng)求和響應(yīng)。




然后在 feign-api 中創(chuàng)建一個(gè)調(diào)用用戶服務(wù)的 FeignUserClient 


FeignClient用來(lái)聲明一個(gè)接口是一個(gè)Feign客戶端,它可以輕松地與其他服務(wù)進(jìn)行通信,而無(wú)需編寫(xiě)大量的樣板代碼。

然后在 order-service 的啟動(dòng)類(lèi)中 指定Feign應(yīng)該掃描的包:

import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.openfeign.EnableFeignClients;

@EnableFeignClients(basePackages = "com.biglead.feign.clients")@SpringBootApplication@MapperScan(basePackages = "com.biglead.orderservice.mapper")public class OrderServiceApplication {
public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); }
}

然后啟動(dòng)服務(wù)測(cè)試




當(dāng)然在實(shí)際業(yè)務(wù)處理中,還有很多細(xì)節(jié)要進(jìn)行處理,一文很難說(shuō)完善,這里只是描述了核心的一個(gè)思想。

最后就是源碼了:

https://gitee.com/android.long/spring-cloud-biglead/tree/master/biglead-api-04-feign

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    久久三级国外久久久三级| 激情偷拍一区二区三区视频| 中文字幕一区二区三区大片| 亚洲国产成人爱av在线播放下载| 日韩中文字幕欧美亚洲| 内射精品欧美一区二区三区久久久| 欧美中文日韩一区久久| 欧美一区二区三区性视频| 欧美日韩精品综合一区| 国产精品大秀视频日韩精品| 99香蕉精品视频国产版| 偷拍美女洗澡免费视频| 国产福利在线播放麻豆| 美女被后入福利在线观看| 亚洲国产精品av在线观看| 亚洲最新的黄色录像在线| 自拍偷女厕所拍偷区亚洲综合| 男人的天堂的视频东京热| 欧美尤物在线观看西比尔| 亚洲精品欧美精品日韩精品| 中文字幕无线码一区欧美| 欧美日韩精品综合在线| 五月情婷婷综合激情综合狠狠| 国产又粗又长又大高潮视频| 丰满少妇高潮一区二区| 男人大臿蕉香蕉大视频| 婷婷激情五月天丁香社区| 中文文精品字幕一区二区 | 日韩熟妇人妻一区二区三区| 在线日韩中文字幕一区| 香蕉尹人视频在线精品| 亚洲综合色婷婷七月丁香| 欧美日韩无卡一区二区| 日韩日韩日韩日韩在线| 99香蕉精品视频国产版| 人人妻在人人看人人澡| 日本精品最新字幕视频播放| 伊人天堂午夜精品草草网| 九九九热在线免费视频| 九九热这里有精品20| 视频一区中文字幕日韩|