Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理
Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)
今天在寫(xiě)業(yè)務(wù)代碼的時(shí)候遇到的問(wèn)題, 前端請(qǐng)求A服務(wù),能正確把參數(shù)給到A服務(wù)<參數(shù)里面包括文件類(lèi)型的 Multipartfile>,但是當(dāng)A服務(wù)調(diào)用B服務(wù)時(shí)把文件參數(shù)丟過(guò)去,那邊接收不到,并且會(huì)報(bào)Multipartfile 參數(shù)錯(cuò)誤。
在網(wǎng)上找到了答案,特此記錄一下:
解決方案
必須的
在你的fegin 服務(wù)接口暴露的地方新建一個(gè)配置類(lèi)。
package com.gobon.gbjk.file.api.config;
import feign.form.spring.SpringFormEncoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
?* <p>
?* feign配置類(lèi)
?* </p>
?*
?* @projectName: gbjk-user
?* @package: com.gobon.gbjk.file.api.config
?* @className: FeignSupportConfig
?* @author: wen jun tang
?* @date: 2021年12月21日 12:25
?* @version: 1.0
?*/
@Configuration
public class FeignSupportConfig {
? ? @Autowired
? ? private ObjectFactory<HttpMessageConverters> messageConverters;
? ? @Bean
? ? public SpringFormEncoder feignFormEncoder() {
? ? ? ? return new SpringFormEncoder(new SpringEncoder(messageConverters));
? ? }
}然后你的接口 文件參數(shù)用@RequestPart修飾:
@PostMapping(value = "/file/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
AjaxResult upload(@RequestPart("file") MultipartFile file, @RequestParam("bucketName") String bucketName);再次調(diào)用, 完美解決!
Feign遠(yuǎn)程調(diào)用傳參問(wèn)題
如果是簡(jiǎn)單參數(shù),用@RequestParam或者@PathVariable注解
如果是對(duì)象參數(shù),用@RequestBody注解
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Feign遠(yuǎn)程調(diào)用傳遞對(duì)象參數(shù)并返回自定義分頁(yè)數(shù)據(jù)的過(guò)程解析
- feign遠(yuǎn)程調(diào)用無(wú)法傳遞對(duì)象屬性405的問(wèn)題
- Feign遠(yuǎn)程調(diào)用參數(shù)里面內(nèi)容丟失的解決方案
- 使用Feign遠(yuǎn)程調(diào)用時(shí),序列化對(duì)象失敗的解決
- spring cloud feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用服務(wù)傳輸文件的方法
- 解決在微服務(wù)環(huán)境下遠(yuǎn)程調(diào)用feign和異步線(xiàn)程存在請(qǐng)求數(shù)據(jù)丟失問(wèn)題
相關(guān)文章
Java實(shí)現(xiàn)對(duì)中文字符串的排序功能實(shí)例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)中文字符串的排序功能實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-04-04
Java使用Runnable和Callable實(shí)現(xiàn)多線(xiàn)程的區(qū)別詳解
這篇文章主要為大家詳細(xì)介紹了Java使用Runnable和Callable實(shí)現(xiàn)多線(xiàn)程的區(qū)別之處,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-07-07
實(shí)戰(zhàn)干貨之基于SpringBoot的RabbitMQ多種模式隊(duì)列
RabbitMQ 是一個(gè)由Erlang語(yǔ)言開(kāi)發(fā)的AMQP的開(kāi)源實(shí)現(xiàn),支持多種客戶(hù)端。用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗,下文將帶你深入了解 RabbitMQ 多種模式隊(duì)列2021-09-09
Java編程常見(jiàn)內(nèi)存溢出異常與代碼示例
這篇文章主要介紹了Java編程常見(jiàn)內(nèi)存溢出異常與代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
SpringBoot實(shí)現(xiàn)單點(diǎn)登錄(SSO)的四種方案
單點(diǎn)登錄(Single?Sign-On,SSO)是企業(yè)應(yīng)用系統(tǒng)中常見(jiàn)的用戶(hù)認(rèn)證方案,它允許用戶(hù)使用一組憑證訪(fǎng)問(wèn)多個(gè)相關(guān)但獨(dú)立的系統(tǒng),無(wú)需重復(fù)登錄,本文給大家介紹了SpringBoot實(shí)現(xiàn)單點(diǎn)登錄(SSO)的四種方案,需要的朋友可以參考下2025-04-04
Java Red5服務(wù)器實(shí)現(xiàn)流媒體視頻播放
這篇文章主要介紹了Java Red5服務(wù)器實(shí)現(xiàn)流媒體視頻播放,對(duì)視頻播放感興趣的同學(xué),可以參考下2021-04-04
SpringBoot自帶模板引擎Thymeleaf使用示例詳解
Thymeleaf是一款用于渲染XML/HTML5內(nèi)容的模板引擎,類(lèi)似JSP,它可以輕易的與SpringMVC等Web框架進(jìn)行集成作為Web應(yīng)用的模板引擎,本文給大家介紹SpringBoot自帶模板引擎Thymeleaf使用示例,感興趣的朋友一起看看吧2023-12-12
Maven編譯錯(cuò)誤:程序包c(diǎn)om.sun.*包不存在的三種解決方案
J2SE中的類(lèi)大致可以劃分為以下的各個(gè)包:java.*,javax.*,org.*,sun.*,本文文章主要介紹了maven編譯錯(cuò)誤:程序包c(diǎn)om.sun.xml.internal.ws.spi不存在的解決方案,感興趣的可以了解一下2024-02-02

