java B2B2C 仿淘寶電子商城系統-Spring Cloud Feign的文件上傳實現

在Spring Cloud封裝的Feign中并不直接支持傳文件,但可以通過引入Feign的擴展包來實現,本文就來具體說說如何實現。需要JAVA Spring Cloud大型企業分布式微服務云構建的B2B2C電子商務平臺源碼 一零三八七七四六二六

服務提供方(接收文件)

服務提供方的實現比較簡單,就按Spring MVC的正常實現方式即可,比如:

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {@RestControllerpublic class UploadController {@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) {return file.getName();}}public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);}}
復制代碼

服務消費方(發送文件)

在服務消費方由于會使用Feign客戶端,所以在這里需要在引入feign對表單提交的依賴,具體如下:

<dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form</artifactId><version>3.0.3</version>
</dependency>
<dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form-spring</artifactId><version>3.0.3</version>
</dependency>
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version>
</dependency>
復制代碼

定義文件上傳方的應用主類和FeignClient,假設服務提供方的服務名為 eureka-feign-upload-server

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class Application {public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);}}@FeignClient(value = "upload-server", configuration = UploadService.MultipartSupportConfig.class)
public interface UploadService {@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)String handleFileUpload(@RequestPart(value = "file") MultipartFile file);@Configurationclass MultipartSupportConfig {@Beanpublic Encoder feignFormEncoder() {return new SpringFormEncoder();}}}
復制代碼

在啟動了服務提供方之后,嘗試在服務消費方編寫測試用例來通過上面定義的Feign客戶端來傳文件,比如:

@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UploadTester {@Autowiredprivate UploadService uploadService;@Test@SneakyThrowspublic void testHandleFileUpload() {File file = new File("upload.txt");DiskFileItem fileItem = (DiskFileItem) new DiskFileItemFactory().createItem("file",MediaType.TEXT_PLAIN_VALUE, true, file.getName());try (InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream()) {IOUtils.copy(input, os);} catch (Exception e) {throw new IllegalArgumentException("Invalid file: " + e, e);}MultipartFile multi = new CommonsMultipartFile(fileItem);log.info(uploadService.handleFileUpload(multi));}}
復制代碼

java B2B2C 仿淘寶電子商城系統

轉載于:https://juejin.im/post/5cb920d0e51d456e442ff331

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536528.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2021計算機三級網絡技術教程,全國計算機等級考試三級教程——網絡技術(2021年版)...

前輔文第一單元 網絡規劃與設計第1章 網絡系統結構與設計的基本原則1.1 基礎知識1.2 實訓任務習題第2章 中小型網絡系統總體規劃與設計方法2.1 基礎知識2.2 實訓任務習題第3章 IP地址規劃設計技術3.1 基礎知識3.2 實訓任務習題第4章 路由設計基礎4.1 基礎知識4.2 實訓任務習題第…

subline Text3 插件安裝

--沒有解決&#xff0c;換了vscode 安裝Package Control 這是必須的步驟&#xff0c;安裝任何插件之前需要安裝這個 自動安裝的方法最方便&#xff0c;只需要在控制臺&#xff08;不是win的控制臺&#xff0c;而是subline 的&#xff09;里粘貼一段代碼就好&#xff0c;但是由…

大學計算機基礎書本里的畢業論文源稿,計算機基礎畢業論文范文

計算機基礎畢業論文范文導語&#xff1a;關于大學計算機基礎的教學&#xff0c;需要不斷探索與實踐&#xff0c;實現更好的教學。下面是小編帶來的計算機基礎畢業論文&#xff0c;歡迎閱讀與參考。論文&#xff1a;大學計算機基礎教學的探索與實踐摘要&#xff1a;大學計算機基…

p批處理替換目錄下文本中的字符串

echo offrem 進入批處理文件所在的路徑 cd C:\Users\zxh\Desktop\123echo ***** Replace "123" as "abc" ***** rem 定義要替換的新舊字符串 set strOld123 set strNewabcrem 定義變量修改本地化延期 setlocal enabledelayedexpansionrem 循環取出要處理的…

計算機技術基礎 VB 答案,《計算機技術基礎(VB)》武漢理工大學20春作業一

計算機技術基礎(VB)_作業一1.[判斷題] 寫在一行上的多條語句&#xff0c;應以逗號作為分隔符。奧鵬作業答案可以聯系QQ 761296021A.正確B.錯誤正確答案:——B——2.[判斷題] 滾動條的最小值、最大值、最小變動值、最大變動值屬性均可自行設計。A.正確B.錯誤正確答案:——A——3…

公務員計算機考試題庫,公務員考試題庫

2019年上半年&#xff0c;我國服務進出口總額達到26124.6億元&#xff0c;同比增長2.6%。其中&#xff0c;出口總額9333.7億元&#xff0c;同比增長9.0%&#xff1b;進口總額16790.8億元&#xff0c;同比下降0.6%。服務進出口總額占對外貿易總額的比重達到15.1%&#xff0c;比2…

Spring MVC 實現Excel的導入導出功能(2:Excel的導入優化和Excel的導出)

Excel的導入V2優化版 有些時候文件上傳這一步驟由前端來處理&#xff0c;只將上傳后的 URL 傳輸給后端&#xff08;可以參考上一文中的圖片上傳功能&#xff09;&#xff0c;也就是導入請求中并不會直接處理 MultipartFile 對象&#xff0c;而是通過文件 URL 將其下載&#xff…

計算機系統應用屬于ei,2018年度中心成員發表論文清單(SCI、EI收錄)

序號論文名稱作者發表時間發表刊物名及ISSN號論文類別(SCI(請寫明幾區)、EI、AB類刊物、CSCD)1Power Allocation Study for Non-Orthogonal Multiple Access Networks With Multicast-Unicast TransmissionZheng Yang , Member, IEEE, Jamal Ahmed Hussein , Peng Xu , Member,…

ts基礎總結

ts有什么用 類型檢查, 擁抱es6&#xff0c;支持部分的esNext草案&#xff0c;直接編譯到原生js、引入新的語法糖 為什么用ts TypeScript的設計目的應該是解決JavaScript的“痛點”&#xff1a;弱類型和沒有命名空間&#xff0c;導致很難模塊化&#xff0c;不適合開發大型程序。…

CentOS7啟用SELinux和Firewall修改ssh端口號

基本信息 CentOS :CentOS Linux release 7.6.1810 (Core)SELinux:enforcedFirewall:enforcing生成ssh密鑰對 生成密鑰對 ssh-keygen -t rsa -b 2048 #默認存放的位置是/home/user/.ssh&#xff0c;使用的是公鑰id_rsa.pub從服務器中將私鑰復制到本機或者使用本地生成的密鑰對&a…

華為智能手環智能手表軟件測試,一塊智能手表的測試之旅,揭秘華為運動健康科學實驗室...

隨著消費者對健康生活的日益關注&#xff0c;隨之而來的是智能可穿戴設備的蓬勃發展。一個手環&#xff0c;一個智能手表&#xff0c;都可以為消費者提供諸如心率&#xff0c;步數相關的數據統計。而更進階的設備&#xff0c;則能為用戶提供系統的運動解決方案以及監控人體健康…

Flutter 使用動畫播放一組圖片

請支持原文&#xff1a;tryenough.com/images-anim… 效果如下圖&#xff1a; 代碼 import package:flutter/material.dart; import package:sprintf/sprintf.dart; //這個是一個拼接字符串的flutter庫&#xff0c;主要是為了使用方便&#xff0c;你可以選擇不使用&#xff0c…

軟件測試都有哪些證書,軟件測試都有哪些證書呀?有用嗎?

OYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學習論壇 www.oywp.netOYWP學…

超低頻測試信號產生電路軟件流程圖,一種0_20Hz超低頻信號發生器的設計與實現...

。。第22卷第4期增刊           儀 器 儀 表 學 報             2001年8月一種0&#xff5e;20Hz超低頻信號發生器的設計與實現馬彥恒 郭 利 于久恩 (軍械工程學院 石家莊 050003)摘要 本文介紹了一種采用了主—從式雙CPU結構,頻率和幅度都…

datastage 使用小結

轉載于:https://www.cnblogs.com/Guhan-xue/p/10758663.html

Teams 的邏輯架構與語音解決方案 - Official Posters Download

意外收獲了前幾天&#xff08;0420&#xff09;剛剛更新出來的Teams架構海報&#xff0c;分享給大家下載 Microsoft Teams IT architecture and telephony solutions postershttps://docs.microsoft.com/en-us/microsoftteams/teams-architecture-solutions-posters 接下來跟大…

ug不能自動啟動服務器,沒有足夠的權限啟動系統服務解決方法

沒有足夠的權限啟動系統服務解決方法UG的安裝要注意兩個問題&#xff0c;一個是安裝路徑不能有中文(包括ug文件存儲路徑也不能含有中文),二是許可證的安裝&#xff0c;win7裝ug問題多數出在“許可證”的安裝過程&#xff0c;你的那個報警是&#xff1a;就是說你把UGII_TMP_DIR設…

css直接子元素怎么用,CSS 子元素選擇器使用實例

與后代選擇器相比&#xff0c;子元素選擇器只能選擇作為某元素子元素的元素。子元素選擇器使用大于號">"做為連接符。如果您不希望選擇任意的后代元素&#xff0c;而是希望縮小范圍&#xff0c;只選擇某個元素的子元素&#xff0c;請使用子元素選擇器子元素選擇器…

C# Collection was modified;enumeration operation may not execute

一、問題描述 在做 數組、列表、集合遍歷時&#xff0c;可能我們會遇見這個問題。Collection was modified;enumeration operation may not execute &#xff0c;翻譯的中文意思&#xff1a;集合已修改&#xff1b;枚舉操作可能無法執行。 二、解決方案 就是在遍歷時&#xff0…

xp系統安裝金蝶k3服務器配置,XP單機版安裝金蝶K3的13.1版本號,金蝶K3Wise安裝步驟,安裝成功...

要注意先安裝IIS。再安裝VS2008。我們會常常在控制面板里找不到“應用程序server”這個項目。我們須要依照以下的步驟來操作就會Ok。1.下載IIS6&#xff0c;放置到D盤根文件夾。2.在執行里輸入&#xff1a;c:\Windows\inf\sysoc.inf即打開找到 [Components]段。加入&#xff1a…