close

本案例介紹基於Ribbon實現文件上傳。整個應用分為3個微服務項目,分別是Eureka服務器項目mweathereurekaserver、文件上傳服務提供者項目uploadfile、文件上傳服務消費者項目fileuser。

本案例中Eureka服務器項目mweathereurekaserver的實現方法和 上一篇 中的實現方法相同,請參考 上一篇 第一節說明和參考書附帶的源代碼。

1

實現文件上傳服務提供者項目uploadfile

1

新建項目並添加依賴


新建項目uploadfile,確保在文件pom.xml的<dependencies>和</dependencies>之間添加了Eureka Client、Thymeleaf、Lombok、Web依賴。

2

創建類


依次在包com.bookcode下創建exception、service、controller等子包。並在包com.bookcode.exception中創建類StorageException、StorageFileNotFoundException,在包com.bookcode.service中創建類StorageService,在包com.bookcode.controller中創建類FileUploadController、UploadPictureController,並修改這些類的代碼。

3

新建文件和修改配置文件


在目錄src/main/resources/templates下創建文件index.html、welcome.html、uploadForm.html,並修改這些文件的代碼。

修改在目錄src/main/resources下的配置文件application.properties。

上述文件的具體代碼請參考本書附帶的源代碼。

2

實現文件上傳服務消費者項目fileuser

1

新建項目並添加依賴


新建項目fileuser,確保在文件pom.xml的<dependencies>和</dependencies>之間添加了Eureka Client、Web依賴。

2

創建類、修改配置文件和配置文件


在包com.bookcode中創建類CallFileUpload、FileUploadController,並修改這些類的代碼。

修改入口類,增加實現負載均衡的代碼。

修改在目錄src/main/resources下的配置文件application.properties。

上述文件的具體代碼請參考本書附帶的源代碼。

3

程序運行結果

在D盤創建一個文件夾upload-dir。

依次運行項目mweathereurekaserver(端口為8761)、uploadfile(服務名稱為file-upload,端口為8093)、fileuser(端口為8099)。

在瀏覽器中輸入localhost:8093,結果如圖C-1所示。

■圖C-1在瀏覽器中輸入localhost:8093的結果

單擊「選擇文件」按鈕,如圖C-1所示,選擇要上傳的文件,再單擊Upload按鈕,結果如圖C-2所示。

■圖C-2正確上傳文件後的結果

在瀏覽器中輸入localhost:8093/upload,結果如圖C-3所示。

■圖C-3在瀏覽器中輸入localhost:8093/upload的結果

單擊圖C-3中「選擇文件」按鈕,選擇要上傳的文件,再單擊圖C-3中「上傳」按鈕,結果如圖C-2所示。

在瀏覽器中輸入localhost:8099/uponefile,結果如圖C-4所示。

■圖C-4在瀏覽器中輸入localhost:8099/uponefile的結果

單擊圖C-4中「選擇文件」按鈕,選擇要上傳的文件,再單擊Upload按鈕,結果如圖C-5所示。

■圖C-5在圖C-4或C-6的基礎上正確上傳文件後的結果

在瀏覽器中輸入localhost:8099/upfiles,結果如圖C-6所示。單擊圖C-6中「選擇文件」按鈕,選擇要上傳的文件,再單擊「上傳」按鈕,結果如圖C-5所示。

■圖C-6在瀏覽器中輸入localhost:8099/upfiles的結果

保持原有項目uploadfile(端口為8093)中其他所有文件不變,只修改配置文件application.properties中設置端口的代碼,再啟動兩個與項目uploadfile微服務內容相同的新服務器(端口分別為8095、8096)。在瀏覽器中輸入localhost:8099/greet,並不斷進行刷新頁面操作,會依次循環顯示如圖C-7(對應的服務器端口為8093)、圖C-8(對應的服務器端口為8095)、圖C-9(對應的服務器端口為8096)所示的結果。

■圖C-7由端口為8093的服務器提供服務的結果

■圖C-8由端口為8095的服務器提供服務的結果

■圖C-9由端口為8096的服務器提供服務的結果

與本案例類似的代碼可以參考網址https://github.com/JavaCodeMood/spring-cloud-demo/tree/master/file-upload,讀者可以對比此網址的代碼和本書附帶的源代碼,加深對Ribbon應用開發的認識。

掃碼觀看視頻講解 限免3天

4

參考書籍

《Spring Cloud 微服務開發實戰-微課視頻版》

ISBN:9787302542346

作者:吳勝

定價:49.9元





arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()