1. 程式人生 > >FeignClient註解及引數

FeignClient註解及引數

一、FeignClient註解

  FeignClient註解被@Target(ElementType.TYPE)修飾,表示FeignClient註解的作用目標在介面上

12345@FeignClient(name = "github-client", url = "https://api.github.com", configuration = GitHubExampleConfig.class)public interface GitHubClient {@RequestMapping(value = "/search/repositories", method = RequestMethod.GET)
String searchRepo(@RequestParam("q") String queryStr);}

 宣告介面之後,在程式碼中通過@Resource注入之後即可使用。@FeignClient標籤的常用屬性如下:

  • name:指定FeignClient的名稱,如果專案使用了Ribbon,name屬性會作為微服務的名稱,用於服務發現
  • url: url一般用於除錯,可以手動指定@FeignClient呼叫的地址
  • decode404:當發生http 404錯誤時,如果該欄位位true,會呼叫decoder進行解碼,否則丟擲FeignException
  • configuration: Feign配置類,可以自定義Feign的Encoder、Decoder、LogLevel、Contract
  • fallback: 定義容錯的處理類,當呼叫遠端介面失敗或超時時,會呼叫對應介面的容錯邏輯,fallback指定的類必須實現@FeignClient標記的介面
  • fallbackFactory: 工廠類,用於生成fallback類示例,通過這個屬性我們可以實現每個介面通用的容錯邏輯,減少重複的程式碼
  • path: 定義當前FeignClient的統一字首
12345678910111213141516171819@FeignClient(name = "github-client",url = "https://api.github.com",configuration = GitHubExampleConfig.
class,fallback = GitHubClient.DefaultFallback.class)public interface GitHubClient {@RequestMapping(value = "/search/repositories", method = RequestMethod.GET)String searchRepo(@RequestParam("q") String queryStr);/*** 容錯處理類,當呼叫失敗時,簡單返回空字串*/@Componentpublic class DefaultFallback implements GitHubClient {@Overridepublic String searchRepo(@RequestParam("q") String queryStr) {return "";}}}

 在使用fallback屬性時,需要使用@Component註解,保證fallback類被Spring容器掃描到,GitHubExampleConfig內容如下:

1234567@Configurationpublic class GitHubExampleConfig {@BeanLogger.Level feignLoggerLevel() {return Logger.Level.FULL;}}

  在使用FeignClient時,Spring會按name建立不同的ApplicationContext,通過不同的Context來隔離FeignClient的配置資訊,在使用配置類時,不能把配置類放到Spring App Component scan的路徑下,否則,配置類會對所有FeignClient生效.

二、Feign Client 和@RequestMapping當前工程中有和Feign Client中一樣的Endpoint時,Feign Client的類上不能用@RequestMapping註解否則,當前工程該endpoint http請求且使用accpet時會報404Controller:
12345678910111213@RestController@RequestMapping("/v1/card")public class IndexApi {@PostMapping("balance")@ResponseBodypublic Info index() {Info.Builder builder = new Info.Builder();builder.withDetail("x", 2);builder.withDetail("y", 2);return builder.build();}}

Feign Client

123456

相關推薦

FeignClient註解引數問題---SpringCloud微服務

一、前言 在用分散式架構SpringBoot的SpringCloud技術開發過程中,FeignClient 是一個常用的註解,且很重要的功能。 簡單理解就是,分散式架構服務之間,各子模組系統內部通訊的核心。 一般在一個系統呼叫另一個系統的介面時使用,如下: 註解 @Feign

FeignClient註解引數

一、FeignClient註解  FeignClient註解被@Target(ElementType.TYPE)修飾,表示FeignClient註解的作用目標在介面上12345@FeignClient(name = "github-client", url = "https:

SpringMVC常用註解引數繫結(02)

一、SpringMVC常用註解:(1)、@Controller:如果不加該註解說明只是一個普通的bean,作用在類上面才宣告該類是一個控制器。(2)、@RequestMapping        如果作用在類上面:可以起到窄化請求對映的作用;        如果作用在方法上面

FeignClient註解參數

工廠類 不同 lsp point false path target inf nco 一、FeignClient註解 FeignClient註解被@Target(ElementType.TYPE)修飾,表示FeignClient註解的作用目標在接口上

關於Mybatis的@Param註解 mybatis Mapper中各種傳遞引數的方法

  原文:https://blog.csdn.net/mrqiang9001/article/details/79520436 關於Mybatis的@Param註解   Mybatis 作為一個輕量級的資料持久化框架,目前(2018)的應用非常廣泛,基本可以取代Hiberna

hibernate validation內置註解自定義註解

ons private from decimal 最重要的 con name cts mva 1 Bean Validation 中內置的 constraint 2 @Null 被註釋的元素必須為 null 3 @NotNull

Java註解反射得到註解

-a hide for dcb his port ges cnblogs 類名 Class類的方法 f package com.part1; /** * * @author pc * */ public class Studen

Java的自定義註解通過反射獲取註解

tco element pos pri jvm ado 參數聲明 機制 world 一、註解基本知識   1、元註解:@Retention @Target @Document @Inherited   2、Annotation型定義為@interface, 所有的Annot

Query註解方法限制

ctx ati IT select ast 實現 res pos param repository倉庫 public interface PersonRepository extends Repository<Person,Integer>{

Spring 常用的註解“依賴註入”的實現

Spring 常用的註解及“依賴註入”1、spring註解@Controller 聲明Action組件@Service 聲明Service組件 @Service("myMovieLister") @Repository 聲明Dao組件@Component 泛指組件, 當不

chapter5.3類型註解習題

強制 empty 數據 註解 name param items chap 不能 函數定義的弊端 動態語言的弊端,不能事先聲明類型,賦值可以是不同的類型,只有在運行時才能發現 動態語言的靈活的特性也是弊端 為解決這些問題而使用類型註解,但也只是聲明,並不能強制約束   難發現

Laravel 5.2+ 獲取當前路徑物件引數

在view中,我們經常需要獲取當前路徑及其引數,例如新增導航高亮。 而Laravel 5.2+版本開始,我們可以使用Route Facade來獲取當前的路徑物件(Route Object),然後我們可以通過該物件獲取我們需要的引數及路徑: $route = Route::

Mysql備份還原資料庫之mysqldump例項引數詳細說明

Mysql備份還原資料庫之mysqldump例項及引數詳細說明 我們在運營專案的過程中肯定會遇到備份資料庫,還原資料庫的情況,我們一般用一下兩種方式來處理: 1.使用into outfile 和 load data infile匯入匯出備份資料 這種方法的好處是,匯出

angualr routerLink 兩種傳參方法引數的使用

1.路徑:http://localhost:8080/#/product?id=1 <a [routerLink]="['/product']" [queryParams]="{id:1}">詳情</a> ts獲取查詢引數: import { Component,

Vue router-link 兩種傳參方法引數的使用

1.路徑:http://localhost:8080/#/detail?detail_id=1 <router-link :to="{path:'/detail',query: {detail_id: id}}">跳轉</router-link>  (id是引數

sed 使用方式引數

sed 流編輯器 也叫行編輯器 將所需要得行拿到模式空間編輯,而後處理結束後,將模式空間輸出到螢幕 sed【 options】 ‘address command’ file … options : -n 表示不顯示模式空間得內容 -i 直接替換原檔案 -e SCRIPT -e SCRIPT

【IM】從貝葉斯角度理解生成式和判別式引數估計方法

生成式和判別式及引數估計方法,綜合如下博文,參考《圖解機器學習》一書,有如下兩頁理解。 https://blog.csdn.net/fjssharpsword/article/details/79297306 https://blog.csdn.net/fjssharpsword/art

【5】Caffe學習系列:其它常用層引數

本文講解一些其它的常用層,包括:softmax_loss層,Inner Product層,accuracy層,reshape層和dropout層及其它們的引數配置。 1、softmax-loss softmax-loss層和softmax層計算大致是相同的。softmax是一個分類器,計算的

【4】Caffe學習系列:啟用層(Activiation Layers)引數

在啟用層中,對輸入資料進行啟用操作(實際上就是一種函式變換),是逐元素進行運算的。從bottom得到一個blob資料輸入,運算後,從top輸入一個blob資料。在運算過程中,沒有改變資料的大小,即輸入和輸出的資料大小是相等的。 輸入:n*c*h*w 輸出:n*c*h*w 常用的啟用函式有

【3】Caffe學習系列:視覺層(Vision Layers)引數

所有的層都具有的引數,如name, type, bottom, top和transform_param. 本文只講解視覺層(Vision Layers)的引數,視覺層包括Convolution, Pooling, Local Response Normalization (LRN),