spring could環境搭建 整理 基礎版

一、創建父項目

創建一個maven 項目,刪掉src 文件夾

二、創建 服務項目

在這裏插入圖片描述

需要做的配置

1)加上對應的註解

在這裏插入圖片描述

2)yml配置

  • server 端口號
  • eureka 配置
  • 兩個false register 和fetch

在這裏插入圖片描述

3)優先啓動這個項目,讓其他的服務來註冊

三、創建 一個提供者項目(module)

創建的時候加入對應的依賴
在這裏插入圖片描述

1)yml配置

  • 配置對應的 application 名稱
  • 配置數據庫
  • 配置mybatis
  • 配置 eureka

在這裏插入圖片描述

2)代碼結構

還在正常的 entity,mapper接口,service ,controller,xml
在這裏插入圖片描述

四、創建消費者項目(module)

在這裏插入圖片描述

1)yml 配置

  • 端口號
  • application name
  • eureka配置

在這裏插入圖片描述

2)消費者的代碼結構

  • service接口
  • service接口實現類
  • feign 接口
  • feign 接口的實現類(如果需要熔斷之後的默認數據的話) 在 service接口實現類中調用 feign 接口

在這裏插入圖片描述

以上就完成了一個基本的spring could 的提供者消費者的配置
但是此刻開始,需要注意的 是各種參數的傳遞問題,筆者這個環節比較頭大
參數的傳遞主要有兩個環節
1)前端傳參數給 消費者的 controller
2)消費者調用feign 接口,傳參給 provider

遇到過的問題

1)controller 接收一個實體類對象,對象爲null

2)controller 接收一個實體類對象,對象接收正常,但是 傳遞到feign 接口裏面的時候,傳遞到provider 裏面就不正常

可能的原因
註解使用不當
要麼從 provider 到controller 全部不要使用註解(不要加@RequestParam,也不要加 @RequestBody),直接寫對象
要麼從 provider 到controller 全部使用註解@RequestParam,全部添加 @RequestParam,此時的參數使用 Map 接收,不要使用自定義的實體類對象
接收對象的時候全部使用 @RequestBody,但是需要指明 products
@PostMapping(value = “/addNewComment”,produces = {“application/json;charset=UTF-8”})
public ReturnUtil addNewComment(@RequestBody Comment comment){
。。。
}
這個方法需要前端做配合,需要前端傳遞過來是 json數據纔可以
在這裏插入圖片描述

直接使用postman測試接口的時候
使用post方式,參數以json 的形式寫在 body中

3)各種忘加必要的註解

消費者需要加註解

  • 啓動類上,使用了feign 接口需要加 @EnableEurekaClient @EnableFeignClients 消費者的
    feign 接口 需要加下面的註解,來指定 提供者,這裏就要求需要配置提供者的application name,需要保持一致,指定是哪一個
    提供者 @FeignClient(value = “couldprovider”)
  • 如果需要熔斷之後,啓動默認的數據,調用默認的接口,需要添加fallback,指定feign接口的實現類即可,正常情況是請求provider的方法,熔斷之後,會調用
    feign 接口的實現類裏面的方法 @FeignClient(value = “couldprovider”,fallback =
    FeignPhoneServiceImpl.class)

提供者

  • @EnableEurekaClient

註冊中心需要加

  • @EnableEurekaServer

4)注意 提供者方法的返回值類型

犯過一個錯誤,提供者的返回值類型是自定義的一個 ReturnUtil,裏面封裝了一個list
然後在消費者以爲返回的是一個list類型,結果當然是調不通的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章