FeignMultipartSupportConfig上传图片配置方式是什么
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍FeignMultipartSupportConfig上传图片配置方式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!FeignMultipartSuppo
千家信息网最后更新 2025年01月18日FeignMultipartSupportConfig上传图片配置方式是什么
这篇文章主要介绍FeignMultipartSupportConfig上传图片配置方式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
FeignMultipartSupportConfig上传图片配置
在对应的boot项目上关闭全局的上传图片的配置
@SpringBootApplication@EnableCircuitBreaker@EnableEurekaClient@EnableFeignClients@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,value = FeignMultipartSupportConfig.class)})public class BootstrapApplication { public static void main(String[] args) { SpringApplication.run(BootstrapApplication.class, args); }}
在目标feign上面添加
@FeignClient(name = "micro-picture", fallbackFactory = MicroPictureFactory.class, configuration = FeignMultipartSupportConfig.class)public interface MicroPictureClient {@RequestMapping(value = { "/picture/common/upload/{commonKey}" }, method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public String upload(@RequestPart("image") MultipartFile image, @PathVariable("commonKey") Long commonKey); }
就可以实现对应的服务做图片的上传,针对的图片微服务就可以实现数据的额接收。
对应配置文件的代码
@Configurationpublic class FeignMultipartSupportConfig { @Bean @Primary @Scope("prototype") public Encoder multipartFormEncoder() { return new FeignSpringFormEncoder(); } @Bean public feign.Logger.Level multipartLoggerLevel() { return feign.Logger.Level.FULL; }}
package com.zhht.config;import feign.RequestTemplate;import feign.codec.EncodeException;import feign.codec.Encoder;import feign.form.ContentType;import feign.form.FormEncoder;import feign.form.MultipartFormContentProcessor;import feign.form.spring.SpringManyMultipartFilesWriter;import feign.form.spring.SpringSingleMultipartFileWriter;import org.springframework.web.multipart.MultipartFile;import java.lang.reflect.Type;import java.util.Collections;import java.util.Map;public class FeignSpringFormEncoder extends FormEncoder { public FeignSpringFormEncoder() { this(new Default()); } public FeignSpringFormEncoder(Encoder delegate) { super(delegate); MultipartFormContentProcessor processor = (MultipartFormContentProcessor) this .getContentProcessor(ContentType.MULTIPART); processor.addWriter(new SpringSingleMultipartFileWriter()); processor.addWriter(new SpringManyMultipartFilesWriter()); } public void encode(Object object, Type bodyType, RequestTemplate template) throws EncodeException { if (bodyType.equals(MultipartFile.class)) { MultipartFile file = (MultipartFile) object; if (file != null) { Mapdata = Collections.singletonMap("image", object); super.encode(data, MAP_STRING_WILDCARD, template); return; } } else if (bodyType.equals(MultipartFile[].class)) { MultipartFile[] file = (MultipartFile[]) object; if (file != null) { Map data = Collections.singletonMap("imgList", object); super.encode(data, MAP_STRING_WILDCARD, template); return; } } super.encode(object, bodyType, template); }}
如何使用Feign上传图片
添加依赖,支持SpringEncoder
io.github.openfeign.form feign-form 3.4.1 io.github.openfeign.form feign-form-spring 3.4.1
将SpringFormEncoder的默认处理
encoder配置为SpringEncoder
@Configurationpublic class FeignMultipartSupportConfig { @Bean public Encoder multipartFormEncoder(ObjectFactorymessageConverters) { return new SpringFormEncoder(new SpringEncoder(messageConverters)); }}
编写client
@FeignClient(value = "****", fallbackFactory = UploadClientFallbackFactory.class , configuration = FeignMultipartSupportConfig.class)public interface UploadClient { /** * 上传图片文件 * * @param file * @return */ @PostMapping(value = "/tbk/feedback/upload", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) BaseResponseuploadImage(@RequestPart("file") MultipartFile file);}
以上是"FeignMultipartSupportConfig上传图片配置方式是什么"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
图片
配置
方式
内容
文件
篇文章
服务
代码
价值
全局
兴趣
小伙
小伙伴
数据
更多
目标
知识
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
intranet服务器
软件开发中标价格
强大的语音对讲软件开发
微信数据库文件
数据库安全方向
腾讯公司微信服务器
ibm服务器改管理口ip
网络安全法是由什么部制定
网络安全教育的学情分析
北京软件开发工资13000
软件开发订金一般是多少
国道数据库技术
惠普打印机自带打印服务器
软件开发日报表
桦川天气预报软件开发
我的世界国际无法连接过期服务器
临床软件开发
电信网络安全会议
软件开发费用什么科目
衢州安全软件开发哪个好
安溪服务器需要多少钱
博途数据库
电子软件开发学校在哪里
逃离塔科夫俄区能改服务器吗
后台数据是否在服务器内
df文件导入数据库
网络安全云课堂直播视频
什么是综合资源服务器
画立体图软件开发
安徽云虚拟主机云服务器