SpringCloud Feign如何在遠(yuǎn)程調(diào)用中傳輸文件
1. 文件遠(yuǎn)程傳輸主要涉及3點(diǎn): 請(qǐng)求方式, 媒體類(lèi)型, 序列化與反序列化, 把握住了這3點(diǎn),基本上就可以搞
2. 使用Feign傳輸,首先搭建起Feign的架子
2.1 引入spring-cloud-starter-eureka-server依賴,用于啟動(dòng)一個(gè)eureka注冊(cè)中心
2.2 引入spring-cloud-starter-eureka依賴,用于開(kāi)啟向eureka注冊(cè)中心注冊(cè)自己
2.3 在調(diào)用遠(yuǎn)程服務(wù)的客戶端引入spring-cloud-starter-feign, 用于使用feign
3. 既然是遠(yuǎn)程調(diào)用, 項(xiàng)目中就必須至少有2個(gè)服務(wù),一個(gè)扮演客戶端,一個(gè)扮演服務(wù)端,對(duì)于文件上傳來(lái)說(shuō),可以將文件上傳服務(wù)定為客戶端,將文件的處理服務(wù)定為服務(wù)端.客戶端接收到文件后調(diào)用服務(wù)端處理文件
3.1 創(chuàng)建一個(gè)eureka注冊(cè)中心
3.2 創(chuàng)建一個(gè)客戶端
3.3 創(chuàng)建一個(gè)服務(wù)端
4. 基礎(chǔ)架構(gòu)搭建好了以后,可以在2個(gè)服務(wù)中都搭建基礎(chǔ)的上傳服務(wù)接口了,測(cè)試上傳文件沒(méi)問(wèn)題后,可以進(jìn)行Feign的調(diào)用搭建
4.1 使用POST請(qǐng)求
4.2 指定接口接收的數(shù)據(jù)類(lèi)型為multipart/form-data
4.3 使用MultipartFile類(lèi)型接收文件
5. Feign的調(diào)用搭建
5.1 誰(shuí)使用Feign就在誰(shuí)的配置中開(kāi)啟支持注解@EnableFeignClients
5.2 創(chuàng)建Feign的基樁,在接口類(lèi)上綁定要調(diào)用服務(wù)的服務(wù)ID,在接口方法上綁定要調(diào)用方法的請(qǐng)求路徑,同時(shí)指定媒體類(lèi)型
6. 此時(shí)重啟2個(gè)服務(wù),調(diào)用試試,發(fā)現(xiàn)報(bào)錯(cuò),原因是編碼問(wèn)題,此時(shí)就是序列化和反序列化的問(wèn)題,需要:
6.1 引入2個(gè)包,用于編碼的支持
<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>
6.2 給容器增加一個(gè)Bean,用于具體的編碼支持
@Bean public Encoder encoder(){ return new SpringFormEncoder(); }
7. 總結(jié)
傳文件主要盯住3樣?xùn)|西: POST請(qǐng)求方式, multipart/form-data媒體類(lèi)型,遠(yuǎn)程調(diào)用的序列方案
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot HATEOAS用法簡(jiǎn)介(入門(mén))
這篇文章主要介紹了SpringBoot HATEOAS用法簡(jiǎn)介(入門(mén)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java transient關(guān)鍵字與序列化操作實(shí)例詳解
這篇文章主要介紹了Java transient關(guān)鍵字與序列化操作,結(jié)合實(shí)例形式詳細(xì)分析了java序列化操作相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-09-09將RestTemplate的編碼格式改為UTF-8,防止亂碼問(wèn)題
這篇文章主要介紹了將RestTemplate的編碼格式改為UTF-8,防止亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java 按行讀取文件按行寫(xiě)入文件并以空格分割字符串的方法
今天小編就為大家分享一篇Java 按行讀取文件按行寫(xiě)入文件并以空格分割字符串的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題
這篇文章主要介紹了SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06