欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Feign說明

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

引入依賴啟動(dòng)類開啟客戶端

首先需要引入依賴

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

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

Feign接口開發(fā)

然后在當(dāng)前服務(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);
}

編寫容錯(cuò)類

容錯(cuò)類主要是在調(diào)用對應(yīng)的服務(wù)接口時(shí)如果出現(xiàn)異常時(shí)的應(yīng)急措施,返回一個(gè)自定義結(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的接口實(shí)現(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的名稱,如果項(xiàng)目使用了Ribbon,name屬性會(huì)作為微服務(wù)的名稱,用于服務(wù)發(fā)現(xiàn)

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

decode404:當(dāng)發(fā)生http 404錯(cuò)誤時(shí),如果該字段位true,會(huì)調(diào)用decoder進(jìn)行解碼,否則拋出FeignException

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

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

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

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

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

相關(guān)文章

  • springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式

    springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式

    這篇文章主要介紹了springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java基于UDP實(shí)現(xiàn)在線聊天功能

    java基于UDP實(shí)現(xiàn)在線聊天功能

    這篇文章主要為大家詳細(xì)介紹了java基于UDP實(shí)現(xiàn)在線聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • AJAX中Get請求報(bào)錯(cuò)404的原因以及解決辦法

    AJAX中Get請求報(bào)錯(cuò)404的原因以及解決辦法

    剛學(xué)習(xí)一門技術(shù)時(shí)總會(huì)踩一些坑,下面這篇文章主要給大家介紹了關(guān)于AJAX中Get請求報(bào)錯(cuò)404的原因及解決辦法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Java?ServletContext與ServletConfig接口使用教程

    Java?ServletContext與ServletConfig接口使用教程

    ServletConfig對象,叫Servlet配置對象。主要用于加載配置文件的初始化參數(shù)。我們知道一個(gè)Web應(yīng)用里面可以有多個(gè)servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對象了
    2022-09-09
  • Java實(shí)現(xiàn)手寫乞丐版線程池的示例代碼

    Java實(shí)現(xiàn)手寫乞丐版線程池的示例代碼

    在這篇文章當(dāng)中我們主要介紹實(shí)現(xiàn)一個(gè)非常簡易版的線程池,深入的去理解其中的原理,麻雀雖小,五臟俱全,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-10-10
  • Java中的CopyOnWriteArrayList解析

    Java中的CopyOnWriteArrayList解析

    這篇文章主要介紹了Java中的CopyOnWriteArrayList解析,ArrayList是非線程安全的,也就是說在多個(gè)線程下進(jìn)行讀寫,會(huì)出現(xiàn)異常,既然是非線程安全,那我們就使用一些機(jī)制把它變安全不就好了,需要的朋友可以參考下
    2023-12-12
  • Spring Security動(dòng)態(tài)權(quán)限的實(shí)現(xiàn)方法詳解

    Spring Security動(dòng)態(tài)權(quán)限的實(shí)現(xiàn)方法詳解

    這篇文章主要和小伙伴們簡單介紹下 Spring Security 中的動(dòng)態(tài)權(quán)限方案,以便于小伙伴們更好的理解 TienChin 項(xiàng)目中的權(quán)限方案,感興趣的可以了解一下
    2022-06-06
  • Java使用正則獲取括號里面的內(nèi)容

    Java使用正則獲取括號里面的內(nèi)容

    這篇文章主要介紹了Java使用正則獲取括號里面的內(nèi)容問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • java網(wǎng)上商城項(xiàng)目第1篇之用戶注冊模塊

    java網(wǎng)上商城項(xiàng)目第1篇之用戶注冊模塊

    這篇文章主要為大家詳細(xì)介紹了java網(wǎng)上商城項(xiàng)目第1篇之用戶注冊模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句的工具類

    Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句的工具類

    這篇文章主要為大家詳細(xì)介紹了如何利用Java編寫一個(gè)工具類,可以實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句,感興趣的小伙伴可以了解一下
    2023-05-05

最新評論