Feign的基本講解筆記

2021-10-02 16:44:35 字數 2184 閱讀 5021

1、引入openfeign的啟動器:

org.springframework.cloud<

/groupid>

spring-cloud-starter-openfeign<

/artifactid>

<

/dependency>

2、配置檔案

feign:

hystrix:

enabled:

true # 開啟feign的熔斷功能

3、新增註解

1、在引導類上新增:@enablefeignclients //啟用feign的元件

那麼引導類中就不需要使用resttemplate了。

@enablefeignclients

//啟用feign元件

public

class

*/public

static

void

main

(string[

] args)

}4、定義介面,在介面上新增註解:@feigncilent(指定服務的id)

@feignclient

("service-provider"

)//宣告這個介面是feign介面,引數是指定的服務id

@repository

public

inte***ce

userclient")

public user queryuserbyid

(@pathvariable

("id"

) long id)

;}

5、在介面中定義一些方法,這些方法的書寫方式跟之前的controller類似

controller:

@responsebody

@hystrixcommand

//宣告熔斷方法

public string queryuserbyid

(@requestparam

("id"

)long id)

在feign中如何定義乙個熔斷方法:

1、在feign介面的包下,定義乙個該介面的實現類,該實現類重寫介面中的方法,就是熔斷方法,把該類注入到容器中。

package cn.itcast.service.client;

import cn.itcast.service.pojo.user;

import org.springframework.stereotype.component;

@component

//注入容器

public

class

userclientfallback

implements

userclient

}

2、怎麼讓feign知道自己有乙個熔斷類呢,那就需要在介面類上的@feignclient註解中加入fallback屬性

@feignclient(value = 「服務id」, fallback = 實現類.class)

package cn.itcast.service.client;

import cn.itcast.service.pojo.user;

import org.springframework.cloud.openfeign.feignclient;

import org.springframework.stereotype.repository;

import org.springframework.web.bind.annotation.pathvariable;

@feignclient

(value =

"service-provider"

, fallback = userclientfallback.

class

)//宣告這個介面是feign介面,引數是指定的服務id

@repository

public

inte***ce

userclient")

public user queryuserbyid

(@pathvariable

("id"

) long id)

;}

springcloud之Feign的基本使用

一 使用feign feign 提供宣告式rest呼叫。一開始我們還在懊惱,dubbo都已經提供了配置式的服務呼叫了,為什麼springcloud沒有相應的解決方案?有springcloud提供了feign宣告式事務,使用feign有個非常大的好處就是,只要你屬性springmvc的annotati...

筆記 feign初識

專案架構 spring cloud 前提 依賴什麼的都已經匯入 在專案a中呼叫專案b的介面,使用feign宣告式呼叫需要做的事情 在專案a中定義feignclient 3 定義降級處理的熔斷類,需要繼承fallbackfactory,同時1中新建的介面類作為泛型入參,熔斷類重寫父類的create方法...

9 16 Feign實戰開發技巧講解實現

在這裡直接做就可以了 首先引入介面 複製一下原來的方法 先做非空的判斷 解析返回的值。相當於把複雜的微服務呼叫變成了單體呼叫一樣。啟動eurekaserver film hall三個服務。修改了begintime和endtime 這裡我們就寫了乙個filmid 原來我們的filmcontroller...