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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

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

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

前言

前面我們已經(jīng)實現(xiàn)了服務(wù)的注冊與發(fā)現(xiàn)(請戳:springcloud系列——eureka 服務(wù)注冊與發(fā)現(xiàn)),并且在注冊中心注冊了一個服務(wù)myspringboot,本文記錄多個服務(wù)之間使用feign調(diào)用。

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

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

服務(wù)提供者

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

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

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

3、提供者如果又要向其他消費者提供服務(wù),又要向瀏覽器提供服務(wù),建議保持原先的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);
  }
}

服務(wù)消費者

消費者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接收參數(shù)時對日期進行格式化
spring.mvc.date-format=yyyy-mm-dd hh:mm:ss
#jackson對響應(yīng)回去的日期參數(shù)進行格式化
spring.jackson.date-format=yyyy-mm-dd hh:mm:ss
spring.jackson.time-zone=gmt+8

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

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

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

3、如果使用@requestmapping,最好指定調(diào)用方式

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

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

?
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調(diào)用
   */
  @getmapping("feign/get/{id}")
  result<uservo> get(@pathvariable("id") integer id){
    return myspringbootfeign.get(id);
  }
 
 
  /**
   * feign調(diào)用
   */
  @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);
  }
 
}

效果

成功注冊兩個服務(wù)

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

成功調(diào)用

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

報錯記錄

1、啟動時報了個sql錯誤

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

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

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

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

SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

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

?
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>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

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

延伸 · 閱讀

精彩推薦
  • Java教程Java實現(xiàn)解數(shù)獨的小程序

    Java實現(xiàn)解數(shù)獨的小程序

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

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

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

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

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

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

    下面小編就為大家?guī)硪黄猰ongo分布式鎖Java實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    Java教程網(wǎng)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實現(xiàn)醫(yī)院管理系統(tǒng)

    Java實現(xiàn)醫(yī)院管理系統(tǒng)

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

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

    java Jersey框架初體驗

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

    gegepa3292020-06-01
  • Java教程java實現(xiàn)文件上傳下載至ftp服務(wù)器

    java實現(xiàn)文件上傳下載至ftp服務(wù)器

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

    多巴胺二次元式8762021-05-08
主站蜘蛛池模板: 波多野结衣作品在线观看 | 午夜影院c绿象 | 久久综合给合久久狠狠狠… | 欧美大美bbb和大白屁股 | ts人妖另类国产 | 97porm国内自拍视频 | 亚洲欧美专区 | 阿 好深 快点 老师受不了 | 亚洲一级特黄特黄的大片 | 风间由美理论片在线观看 | 波多野结衣xxxx性精品 | 91免费播放人人爽人人快乐 | 星空无限传媒xk8046 | 欧美疯狂做爰xx | 国产一区二区精品 | 日本一区二区视频在线 | 精品免费国产一区二区三区 | 国产亚洲精品激情一区二区三区 | 国内精品在线观看视频 | 国产精品午夜剧场 | 美女在线看永久免费网址 | 久久精品国产在热亚洲完整版 | 激情艳妇| 国产精品视频2021 | 日韩精品视频美在线精品视频 | avtt在线观看 | 日本中文字幕在线精品 | 女人张开腿 让男人桶个爽 免费观看 | 亚洲国产第一区二区香蕉日日 | a毛片久久免费观看 | 国产在线综合网 | 手机在线免费观看日本推理片 | 亚洲女同一区二区 | 青青青手机在线视频 | 免费在线观看成年人视频 | 69老司机亚洲精品一区 | 午夜影院一区二区三区 | 视频一区在线免费观看 | 成成人看片在线 | 青苹果乐园影院免费观看完整版 | 日韩亚洲国产欧美精品 |