一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - SpringCloud Feign 服務調用的實現

SpringCloud Feign 服務調用的實現

2021-07-01 14:39huanzi-qch Java教程

Feign是一個聲明性web服務客戶端。本文記錄多個服務之間使用Feign調用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

前面我們已經實現了服務的注冊與發現(請戳:springcloud系列——eureka 服務注冊與發現),并且在注冊中心注冊了一個服務myspringboot,本文記錄多個服務之間使用feign調用。

feign是一個聲明性web服務客戶端。它使編寫web服務客戶機變得更容易,本質上就是一個http,內部進行了封裝而已。

github地址:https://github.com/openfeign/feign

官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.1.0.rc2/single/spring-cloud-openfeign.html

服務提供者

提供者除了要在注冊中心注冊之外,不需要引入其他東西,注意一下幾點即可:

1、如果使用對象接參,必須使用@requestbody,否則接不到數據

2、接參只能出現一個復雜對象,例:public result<list<uservo>> list(@requestbody uservo entityvo) { ... }

3、提供者如果又要向其他消費者提供服務,又要向瀏覽器提供服務,建議保持原先的controller,新建一個專門給消費者的controller

測試接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@restcontroller
@requestmapping("/user/")
public class usercontroller {
 
  @autowired
  private userservice userservice;
  @requestmapping("list")
  public result<list<uservo>> list(@requestbody uservo entityvo) {
    return userservice.list(entityvo);
  }
 
  @requestmapping("get/{id}")
  public result<uservo> get(@pathvariable("id") integer id) {
    return userservice.get(id);
  }
}

服務消費者

消費者maven引入jar

?
1
2
3
4
5
<!-- feign -->
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-openfeign</artifactid>
  </dependency>

配置文件

對日期的解析,消費者要跟提供者一致,不然會報json解析錯誤

?
1
2
3
4
5
6
7
8
#超時時間
feign.httpclient.connection-timeout=30000
 
#mvc接收參數時對日期進行格式化
spring.mvc.date-format=yyyy-mm-dd hh:mm:ss
#jackson對響應回去的日期參數進行格式化
spring.jackson.date-format=yyyy-mm-dd hh:mm:ss
spring.jackson.time-zone=gmt+8

服務調用

1、springdatejpa 應用名稱,是服務提供者在eureka注冊的名字,feign會從注冊中心獲取實例

2、如果不想啟動eureka服務,直連本地開發:@feignclient(name = "springdatejpa", path = "/user/",url = "http://localhost:10086")

3、如果使用@requestmapping,最好指定調用方式

4、消費者的返回值必須與提供者的返回值一致,參數對象也要一致

更多@feignclient注解參數配置,請參閱官方文檔

?
1
2
3
4
5
6
7
8
9
@feignclient(name = "springdatejpa", path = "/user/")
public interface myspringbootfeign {
 
  @requestmapping(value = "get/{id}")
  result<uservo> get(@pathvariable("id") integer id);
 
  @requestmapping(value = "list", method = requestmethod.get)
  result<list<uservo>> list(@requestbody uservo entityvo);
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
   * feign調用
   */
  @getmapping("feign/get/{id}")
  result<uservo> get(@pathvariable("id") integer id){
    return myspringbootfeign.get(id);
  }
 
 
  /**
   * feign調用
   */
  @getmapping("feign/list")
  result<list<uservo>> list(uservo uservo){
    return myspringbootfeign.list(uservo);
  }

啟動類

啟動類加入注解:@enablefeignclients

?
1
2
3
4
5
6
7
8
9
10
@enableeurekaclient
@enablefeignclients
@springbootapplication
public class myspringbootapplication{
 
  public static void main(string[] args) {
    springapplication.run(myspringbootapplication.class, args);
  }
 
}

效果

成功注冊兩個服務

SpringCloud Feign 服務調用的實現

成功調用

SpringCloud Feign 服務調用的實現

SpringCloud Feign 服務調用的實現

報錯記錄

1、啟動時報了個sql錯誤

SpringCloud Feign 服務調用的實現

解決:配置文件連接數據時指定servertimezone=gmt%2b8

SpringCloud Feign 服務調用的實現

2、當我將之前搭好的一個springboot-springdata-jpa整合項目在eureka注冊時出現了一個報錯

SpringCloud Feign 服務調用的實現

然后在網上查了下說是因為springboot版本問題,之前這個項目用的是2.0.1.release,現在要在eureka注冊,pom引入了就出現了上面的報錯

?
1
2
3
4
5
6
7
8
9
10
11
<!-- eureka-client -->
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
    </dependency>
 
    <!-- actuator -->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-actuator</artifactid>
    </dependency>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<dependencymanagement>
    <dependencies>
      <dependency>
        <groupid>org.springframework.cloud</groupid>
        <artifactid>spring-cloud-dependencies</artifactid>
        <version>greenwich.rc1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencymanagement>
  <repositories>
    <repository>
      <id>spring-milestones</id>
      <name>spring milestones</name>
      <url>https://repo.spring.io/milestone</url>
    </repository>
  </repositories>

解決:升級了springboot版本,2.1.0,項目正常啟動

?
1
2
3
4
5
6
7
<parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>2.1.0.release</version>
    <!--<version>2.0.1.release</version>-->
    <relativepath/> <!-- lookup parent from repository -->
  </parent>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/huanzi-qch/p/10135946.html

延伸 · 閱讀

精彩推薦
  • Java教程Java實現解數獨的小程序

    Java實現解數獨的小程序

    最近在學習Java,然后上個月迷上了九宮格數獨,玩了幾天,覺得實在有趣,就想著能不能用編程來解決,于是就自己寫了個,還真解決了。下面這篇文章就...

    databatman5202020-07-30
  • Java教程IntelliJ IDEA 詳細圖解最常用的配置(適合剛剛用的新人)

    IntelliJ IDEA 詳細圖解最常用的配置(適合剛剛用的新人)

    這篇文章主要介紹了IntelliJ IDEA 詳細圖解最常用的配置,本篇教程非常適合剛剛用的新人,本文圖文并茂給大家介紹的非常詳細,對大家的學習或工作具有...

    請叫我大師兄__2962020-08-05
  • Java教程mongo分布式鎖Java實現方法(推薦)

    mongo分布式鎖Java實現方法(推薦)

    下面小編就為大家帶來一篇mongo分布式鎖Java實現方法(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    Java教程網4162020-11-28
  • Java教程Java中DecimalFormat用法詳解

    Java中DecimalFormat用法詳解

    這篇文章主要為大家詳細介紹了Java中DecimalFormat的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    指尖de柔情8412021-04-08
  • Java教程詳解spring與jdbc整合操作

    詳解spring與jdbc整合操作

    這篇文章主要為大家詳細介紹了spring與jdbc整合操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    woonu3762020-06-27
  • Java教程Java實現醫院管理系統

    Java實現醫院管理系統

    這篇文章主要介為大家詳細紹了Java實現醫院管理系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    凱耐8892021-06-21
  • Java教程java Jersey框架初體驗

    java Jersey框架初體驗

    本篇主要是Jersey體驗,你將在不做任何編碼的情況下,體驗Jersey框架的神氣魅力!本文還假定你在eclipse里安裝了Maven插件 ...

    gegepa3292020-06-01
  • Java教程java實現文件上傳下載至ftp服務器

    java實現文件上傳下載至ftp服務器

    這篇文章主要為大家詳細介紹了java實現文件上傳下載至ftp服務器的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    多巴胺二次元式8762021-05-08
主站蜘蛛池模板: 精品一产品大全 | 麻麻与子乱肉小说怀孕 | 特级老女人淫片高清视频 | 国产欧美一区二区三区精品 | 国产精品久热 | 国产成人刺激视频在线观看 | 日韩porn| 亚洲第一天堂无码专区 | 思敏1一5集国语版免费观看 | 日韩a无吗一区二区三区 | 国产精品视频网 | 欧美男女爱爱视频 | 日韩拍拍拍 | 美女一级ba大片免色 | 美国女孩毛片 | 国产成人精品免费久久久久 | 视频一区在线免费观看 | 国产资源免费观看 | 99爱爱| 操小女人| 国色天香社区在线视频播放 | daring国家队在线观看樱花动漫 | 无码中文字幕热热久久 | 成人欧美1314www色视频 | 波多野结衣黑人系列在线观看 | 日本不卡视频免费的 | chinese男gay飞机同志 | 京东热dj6666 | 国产精品香蕉一区二区三区 | 亚洲欧美综合人成野草 | 6080窝窝理论 | 网站久久 | 十大看黄网站 | 2012手机在线中文字幕 | 亚洲欧美日韩精品高清 | 苍井空色欲迷墙 | 风间由美在线 | 99精品在免费线视频 | 欧美影院一区二区三区 | 亚洲性69影视 | 亚洲国产精品成人综合久久久 |