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

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

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

Feign說明

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

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

首先需要引入依賴

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

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

Feign接口開發(fā)

然后在當前服務內(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)用對應的服務接口時如果出現(xiàn)異常時的應急措施,返回一個自定義結果。

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

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

編寫好Feign客戶端接口后,就可以在本服務內(nèi)的業(yè)務層調(diào)用Feign的接口實現(xiàn)服務間的調(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屬性會作為微服務的名稱,用于服務發(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)用對應接口的容錯邏輯,fallback指定的類必須實現(xiàn)@FeignClient標記的接口

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

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

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

相關文章

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

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

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

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

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

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

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

    SpringBoot文件上傳的原理解析

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

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

    最近在做項目時需要對異常進行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關于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ù)源配置的完整步驟

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

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

    if-else語句是控制流程的基本工具,但過度使用會使代碼變得復雜且難以維護,在SpringBoot , SpringCloud項目中,優(yōu)化if-else結構變得尤為重要,本文將深入探討七種策略,旨在減少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

最新評論

德化县| 大余县| 突泉县| 渝北区| 辛集市| 三河市| 金川县| 南充市| 雷山县| 霍林郭勒市| 肇州县| 武强县| 镇康县| 资兴市| 永兴县| 绥滨县| 通化市| 子长县| 贡山| 安泽县| 平陆县| 翁牛特旗| 图木舒克市| 安丘市| 伊宁县| 连南| 恭城| 桐城市| 大关县| 包头市| 栖霞市| 秀山| 石首市| 神农架林区| 团风县| 三门县| 花垣县| 南汇区| 南和县| 武隆县| 泸西县|