Feign进行跨服务传递MultipartFile文件
1.编写目的
通过调用服务进行文件上传,避免每个需要上传文件的模块都写一遍上传服务,造成代码冗余。
2.主要内容
本文主要包含通过feign进行文件上传模块。
3.作用
使技术人员在开发过程中遇到问题时有地可查,有章可循。
4.如何通过feign进行跨服务传递MultipartFile文件
4.1添加依赖
<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>
4.2添加配置文件
1 package com.ruiyi.twowayreferral.configurer; 2 3 import feign.codec.Encoder; 4 import feign.form.spring.SpringFormEncoder; 5 import org.springframework.beans.factory.ObjectFactory; 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.boot.autoconfigure.http.HttpMessageConverters; 8 import org.springframework.cloud.openfeign.support.SpringEncoder; 9 import org.springframework.context.annotation.Bean; 10 import org.springframework.context.annotation.Configuration; 11 12 @Configuration 13 public class MultipartSupportConfig { 14 15 @Autowired 16 private ObjectFactory<HttpMessageConverters> messageConverters; 17 18 @Bean 19 public Encoder feignFormEncoder() { 20 return new SpringFormEncoder(new SpringEncoder(messageConverters)); 21 } 22 }
4.3代码示例
1 @FeignClient(value = "controller-center") 2 public interface CallFrignService { 3 4 /** 5 * @Create 文件上传 wanggx_ruiyi 2019.11.15 6 * @param uploadPath 文件上传地址 7 * @param file 上传的文件 8 * @return 9 */ 10 @PostMapping(value = "/api/v1/common/file/fileUpload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 11 String fileUpload(@RequestParam(value = "uploadPath", required = true) String uploadPath,@RequestPart(value = "file", required = true) MultipartFile file); 12 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!