最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Feign微服務(wù)接口調(diào)用方法詳細講解

 更新時間:2023年01月29日 14:04:42   作者:道雖邇,不行不至  
現(xiàn)如今微服務(wù)架構(gòu)十分流行,而采用微服務(wù)構(gòu)建系統(tǒng)也會帶來更清晰的業(yè)務(wù)劃分和可擴展性。java如果使用微服務(wù)就離不開springcloud,我這里是把服務(wù)注冊到nacos上,各個服務(wù)之間的調(diào)用使用feign

Feign說明

Feign是一種聲明式、模板化的HTTP客戶端。在spring cloud中使用Feign,可以做到類似于普通的接口的請求調(diào)用,可以發(fā)現(xiàn)對應(yīng)的服務(wù)的接口,進而直接調(diào)用對應(yīng)服務(wù)中的接口。

引入依賴啟動類開啟客戶端

首先需要引入依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

然后在啟動類中加入注解@EnableFeignClients ,開啟Feign客戶端。

Feign接口開發(fā)

然后在當前服務(wù)內(nèi)編寫Feign接口,接口與普通的controller層類似,只是在類上不需要寫@Controller等注解,只需要加上@Component 、 @FeignClient注解即可,下面的請求方法需要寫上@PostMapping(“/findList”)注解。如下:

@Component
@FeignClient(value = "sso", path = "/api/user", fallback = UserClientHystrix.class)
public interface UserClient {
    /**
     * 獲取對象集合
     * @param object
     * @return
     */
    @PostMapping("/findList")
    Result<UserDO> findList(@CustomJSONBody Object object);
}

編寫容錯類

容錯類主要是在調(diào)用對應(yīng)的服務(wù)接口時如果出現(xiàn)異常時的應(yīng)急措施,返回一個自定義結(jié)果。

@Component("userClientHystrix")
public class UserClientHystrix implements UserClient {
    @Override
    public Result<UserDO> findList(Object object) {
        return Result.error("服務(wù)不可用!");
    }
}

在業(yè)務(wù)層調(diào)用Feign客戶端接口

編寫好Feign客戶端接口后,就可以在本服務(wù)內(nèi)的業(yè)務(wù)層調(diào)用Feign的接口實現(xiàn)服務(wù)間的調(diào)用了。

@Resource
UserClient userClient;
public Result<List<UserDO>> findList(){
	Map<String, String> map = new HashMap<>();
	map.put("userNo", "1001");
	return Result.success(userClient.findList(map).getData());
}

Feign的常用屬性如下

name:指定FeignClient的名稱,如果項目使用了Ribbon,name屬性會作為微服務(wù)的名稱,用于服務(wù)發(fā)現(xiàn)

url: url一般用于調(diào)試,可以手動指定@FeignClient調(diào)用的地址,如果指定了url地址后,會優(yōu)先調(diào)用url指定的地址

decode404:當發(fā)生http 404錯誤時,如果該字段位true,會調(diào)用decoder進行解碼,否則拋出FeignException

configuration: Feign配置類,可以自定義Feign的Encoder、Decoder、LogLevel、Contract

fallback: 定義容錯的處理類,當調(diào)用遠程接口失敗或超時時,會調(diào)用對應(yīng)接口的容錯邏輯,fallback指定的類必須實現(xiàn)@FeignClient標記的接口

fallbackFactory: 工廠類,用于生成fallback類示例,通過這個屬性我們可以實現(xiàn)每個接口通用的容錯邏輯,減少重復(fù)的代碼

path: 定義當前FeignClient的統(tǒng)一前綴,當我們項目中配置了server.context-path,server.servlet-path時使用

到此這篇關(guān)于Java Feign微服務(wù)接口調(diào)用方法詳細講解的文章就介紹到這了,更多相關(guān)Java Feign微服務(wù)接口調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot3集成SLF4J+logback進行日志記錄的實現(xiàn)

    SpringBoot3集成SLF4J+logback進行日志記錄的實現(xiàn)

    本文主要介紹了SpringBoot3集成SLF4J+logback進行日志記錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 快速搭建SSM框架(Maven)五步曲的方法步驟

    快速搭建SSM框架(Maven)五步曲的方法步驟

    這篇文章主要介紹了快速搭建SSM框架(Maven)五步曲的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • spring利用squertz實現(xiàn)定時任務(wù)

    spring利用squertz實現(xiàn)定時任務(wù)

    spring squertz是一個強大的定時任務(wù)處理方式。下面這篇文章主要介紹了spring利用squertz實現(xiàn)定時任務(wù)的相關(guān)資料,文中介紹的很詳細,對大家具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。
    2017-01-01
  • SpringBoot文件上傳的原理解析

    SpringBoot文件上傳的原理解析

    這篇文章主要介紹了SpringBoot文件上傳的原理解析,SpringBoot 文件上傳是一種方便快捷的方式,可以將文件上傳到服務(wù)器,通過使用SpringBoot的文件上傳功能,可以輕松地實現(xiàn)文件上傳功能,需要的朋友可以參考下
    2023-10-10
  • 深入聊一聊springboot項目全局異常處理那些事兒

    深入聊一聊springboot項目全局異常處理那些事兒

    最近在做項目時需要對異常進行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關(guān)于springboot項目全局異常處理那些事兒,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • Java中的Optional處理方法

    Java中的Optional處理方法

    在我們?nèi)粘5拈_發(fā)中,我們經(jīng)常會遇到?NullPointerException,如何才能優(yōu)雅的處理NPE?這里告訴大家一個較為流行的方法,這篇文章主要介紹了Java中的Optional處理方法,需要的朋友可以參考下
    2022-09-09
  • JAVA開發(fā)中的一些規(guī)范講解(阿里巴巴Java開發(fā)規(guī)范手冊)

    JAVA開發(fā)中的一些規(guī)范講解(阿里巴巴Java開發(fā)規(guī)范手冊)

    這篇文章主要介紹了JAVA開發(fā)中的一些規(guī)范講解(阿里巴巴Java開發(fā)規(guī)范手冊),需要的朋友可以參考下
    2018-04-04
  • Spring Boot+Jpa多數(shù)據(jù)源配置的完整步驟

    Spring Boot+Jpa多數(shù)據(jù)源配置的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot+Jpa多數(shù)據(jù)源配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • SpringBoot中優(yōu)化if-else語句的七種方法

    SpringBoot中優(yōu)化if-else語句的七種方法

    if-else語句是控制流程的基本工具,但過度使用會使代碼變得復(fù)雜且難以維護,在SpringBoot , SpringCloud項目中,優(yōu)化if-else結(jié)構(gòu)變得尤為重要,本文將深入探討七種策略,旨在減少SpringBoot , SpringCloud項目中 if-else的使用,需要的朋友可以參考下
    2024-07-07
  • Spring Controller接收前端JSON數(shù)據(jù)請求方式

    Spring Controller接收前端JSON數(shù)據(jù)請求方式

    這篇文章主要為大家介紹了Spring Controller接收前端JSON數(shù)據(jù)請求方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論

全椒县| 阜平县| 福鼎市| 中宁县| 太湖县| 利津县| 蓬溪县| 新泰市| 嘉善县| 永宁县| 新津县| 上蔡县| 宁国市| 临西县| 昌乐县| 中宁县| 磐安县| 大关县| 彭泽县| 息烽县| 三河市| 蒲江县| 容城县| 金寨县| 蓬溪县| 永昌县| 浦东新区| 宁强县| 桃源县| 镇雄县| 维西| 桂东县| 扎囊县| 岢岚县| 奉化市| 都匀市| 锦屏县| 息烽县| 连平县| 义马市| 抚远县|