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

詳解Spring-Cloud2.0之Feign調(diào)用遠程服務(wù)指南

 更新時間:2019年01月31日 14:51:54   作者:Moshow鄭鍇  
這篇文章主要介紹了詳解Spring-Cloud2.0之Feign調(diào)用遠程服務(wù)指南,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Feign是什么

Feign是簡化Java HTTP客戶端開發(fā)的工具(java-to-httpclient-binder),它的靈感來自于Retrofit、JAXRS-2.0和WebSocket。Feign的初衷是降低統(tǒng)一綁定Denominator到HTTP API的復(fù)雜度,不區(qū)分是否為restful。

為什么使用Feign

開發(fā)人員使用Jersey和CXF等工具可以方便地編寫java client,從而提供REST或SOAP服務(wù);開發(fā)人員也可以基于Apache HC等http傳輸工具包編寫自己的java http client;而Feign的關(guān)注點在于簡化開發(fā)人員使用工具包的復(fù)雜度,以最少的代碼編寫代碼從而提供java http客服端。通過定制解碼器和異常處理,開發(fā)人員可以任意編寫文本化的HTTP API。

好了,上面是官方的,假如要我說Feign是什么。

一句話解釋Feign

可以理解為Feign是一個超級方便的調(diào)用Spring-Cloud遠程服務(wù)的框架/工具,幫助開發(fā)者以更少耦合更少代碼更快更兼容的方法進行遠程服務(wù)調(diào)用。

配置文件

調(diào)用的時候,雙方的application.yml一定要加上兩個配置,因為雙方服務(wù)器是需要相互發(fā)現(xiàn)并獲取服務(wù)列表的。

不然會報錯提示“feign Load balancer does not have available server for client: xxxx”

eureka:
 client:
  #是否將自己注冊到eureka服務(wù)注冊中心,默認為true
  register-with-eureka: true
  #是否從服務(wù)注冊中心獲取可用的服務(wù)清單,默認為true
  fetch-registry: true
  serviceUrl:
   defaultZone: http://192.168.114.152:9091/eureka/

然后就是再pom.xml里面加上最新出爐的feign包

    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-feign</artifactId>
      <version>1.4.4.RELEASE</version>
    </dependency>

服務(wù)調(diào)用者

啟動器一定要加@EnableFeignClients,代表進行Feign調(diào)用,F(xiàn)eign會到Eureka拉取服務(wù)列表,供調(diào)用的。

@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class CheckCollectSysApplication {
  public static void main(String[] args) {
    SpringApplication.run(CheckCollectSysApplication.class,args);
  }
}

調(diào)用方業(yè)務(wù)方面。推薦是寫一個interface類,把方法封裝起來供其他Controller調(diào)用。

這里要注意

1. @FeignClient里面一定要指定是name,很久以前的版本指定的是serviceId,那個已經(jīng)過時了。

2. 如果用到占位符,@PathVariable也需要指定value,這是一個強制要求,不然會報錯,提示“Feign PathVariable annotation was empty on param 0.”

3. RequestParam也需要指定value,不然會提示”RequestParam.value() was empty on parameter 1”

另外,別人說什么GetMapping啊PutMapping啊不行的,其實不會的,我試過都可以了

@FeignClient(name = "demo-checksys")
public interface ChecysysRemoteClient {
  /**
   * 獲取基本信息
   *(PutMapping的URL=遠程項目的Path+ControllerPath+MethodPath
   * 簡單的說,就是你直接postman可以訪問的項目路徑) 
   */
  @PutMapping("/checksys/register/info/{checkNum}")
  public ApiReturnObject updateCheckRegisterByBodyCheck(@PathVariable(value="checkNum") String checkNum,@RequestParam(value="bodyJson") String bodyJson);
}

這里的FeignClient的name是指注冊到Eureka的被調(diào)用者的ApplicationName,就是你應(yīng)用的名字啦,application.yml里面可以進行配置

spring:
  application:
    name: demo-checksys

PutMapping的URL=遠程項目的Path+ControllerPath+MethodPath,簡單的說,就是你直接postman可以訪問的項目路徑。

例如項目是http://127.0.0.1:8080/demo/user/getUser/{userId},

那么這里寫的就是”/demo/user/getUser/{userId}”

被調(diào)用者

至于被調(diào)用者,一如既往的code,沒什么不同,畢竟是被別人調(diào)用,這種調(diào)用方式很安逸。

  /**
   * 獲取基本信息
   */
  @PutMapping("/info/{checkNum}")
  public ApiReturnObject updateCheckRegisterByBodyCheck(@PathVariable String checkNum,String bodyJson) {
    //這里可以打印一些日志
    outSystemService.updateCheckRegisterByBodyCheck(checkNum, bodyJson);
    return ApiReturnUtil.success("調(diào)用成功");
  }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中classpath的基本概念和配置方法詳析

    Java中classpath的基本概念和配置方法詳析

    這篇文章主要介紹了Java中的classpath概念,包括其基本概念、設(shè)置方法以及在Java應(yīng)用中的作用,在IDE中的配置也進行了詳細說明,并提到了一些通用注意事項,需要的朋友可以參考下
    2025-02-02
  • springboot3解決跨域的幾種方式小結(jié)

    springboot3解決跨域的幾種方式小結(jié)

    這篇文章主要介紹了springboot3解決跨域的幾種方式,文中通過代碼示例給大家介紹的非常詳細,對大家的解決跨域有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • java循環(huán)遍歷無規(guī)則json的方式:gson、fastjson、orgjson

    java循環(huán)遍歷無規(guī)則json的方式:gson、fastjson、orgjson

    這篇文章主要介紹了java循環(huán)遍歷無規(guī)則json的方式:gson、fastjson、orgjson,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring Boot 功能整合的實現(xiàn)

    Spring Boot 功能整合的實現(xiàn)

    Spring Boot生態(tài)豐富,集成也不算困難。本文簡單的介紹下功能整合的步驟,最后提供一個具體的實現(xiàn)例子,學習Spring Boot的同學可以參考下
    2021-05-05
  • JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 下面這篇文章給大家介紹了JAVA使用POI獲取Excel列數(shù)和行數(shù)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • springboot如何根據(jù)配置屏蔽接口返回字段

    springboot如何根據(jù)配置屏蔽接口返回字段

    這篇文章主要介紹了springboot如何根據(jù)配置屏蔽接口返回字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 一文快速掌握Java中的搜索算法和排序算法

    一文快速掌握Java中的搜索算法和排序算法

    這篇文章主要為大家詳細介紹了Java中常用的搜索算法和排序算法的實現(xiàn),例如二分查找、冒泡排序、選擇排序等,文中的示例代碼講解詳細,希望對大家有所幫助
    2023-04-04
  • spring boot輸入數(shù)據(jù)校驗(validation)的實現(xiàn)過程

    spring boot輸入數(shù)據(jù)校驗(validation)的實現(xiàn)過程

    web項目中,用戶的輸入總是被假定不安全不正確的,在被處理前需要做校驗。本文介紹在spring boot項目中實現(xiàn)數(shù)據(jù)校驗的過程,通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-09-09
  • java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程

    java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程

    剛開始學JAVA GUI,就練手寫了一個小時候經(jīng)常在諾基亞上玩的一個小游戲__貪吃蛇.做的比較簡單,但還是可以玩的.感興趣的朋友快來看看吧
    2021-11-11
  • java讀取json文件的2種方式例子

    java讀取json文件的2種方式例子

    這篇文章主要給大家介紹了關(guān)于java讀取json文件的2種方式,在開發(fā)過程中有時會遇到需要讀取.json文件的需求,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07

最新評論

九龙坡区| 嘉义县| 武安市| 丹巴县| 吉木乃县| 克什克腾旗| 巴彦淖尔市| 翁牛特旗| 通海县| 克什克腾旗| 牙克石市| 上思县| 汕尾市| 阿拉善左旗| 威宁| 丰台区| 合阳县| 封丘县| 门源| 遂昌县| 望江县| 扶余县| 天镇县| 客服| 惠东县| 海伦市| 化州市| 万盛区| 绥化市| 皋兰县| 酉阳| 临泽县| 乡城县| 大城县| 宝坻区| 镇巴县| 邢台县| 平阳县| 乐东| 疏附县| 遂溪县|