博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Spring Cloud Feign上传文件
阅读量:5786 次
发布时间:2019-06-18

本文共 1640 字,大约阅读时间需要 5 分钟。

  hot3.png

  • 原文:
  • 采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

最近经常有人问Spring Cloud Feign如何上传文件。有团队的新成员,也有其他公司的兄弟。本文简单做个总结——

早期的Spring Cloud中,Feign本身是没有上传文件的能力的(1年之前),要想实现这一点,需要自己去编写Encoder 去实现上传。现在我们幸福了很多。因为Feign官方提供了子项目 ,其中实现了上传所需的 Encoder

注:笔者测试的版本是Edgware.RELEASE。Camden、Dalston同样适应本文所述。

加依赖

io.github.openfeign.form
feign-form
3.0.3
io.github.openfeign.form
feign-form-spring
3.0.3

编写Feign Client

@FeignClient(name = "ms-content-sample", configuration = UploadFeignClient.MultipartSupportConfig.class)public interface UploadFeignClient {    @RequestMapping(value = "/upload", method = RequestMethod.POST,            produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},            consumes = MediaType.MULTIPART_FORM_DATA_VALUE)    @ResponseBody    String handleFileUpload(@RequestPart(value = "file") MultipartFile file);    class MultipartSupportConfig {        @Bean        public Encoder feignFormEncoder() {            return new SpringFormEncoder();        }    }}

如代码所示,在这个Feign Client中,我们引用了配置类MultipartSupportConfig ,在MultipartSupportConfig 中,我们实例化了SpringFormEncoder 。这样这个Feign Client就能够上传啦。

注意点

  • @RequestMapping(value = "/upload", method = RequestMethod.POST,            produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},            consumes = MediaType.MULTIPART_FORM_DATA_VALUE)

    中的produecesconsumes 不能少;

  • 接口定义中的注解@RequestPart(value = "file") 不能写成@RequestParam(value = "file"

  • 最好将Hystrix的超时时间设长一点,例如5秒,否则可能文件还没上传完,Hystrix就超时了,从而导致客户端侧的报错。

转载于:https://my.oschina.net/eacdy/blog/1584373

你可能感兴趣的文章
java项目部署运行
查看>>
C++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的Boost
查看>>
jetty服务器原理与maven集成
查看>>
Docker搭建nexus3私服
查看>>
在Android中运用RxJava
查看>>
swift4.1 系统学习十 函数
查看>>
Docker基本概念与实践(四)-部署简单web项目(tomcat+war+mysql)
查看>>
最简单企业证书部署应用!In-House改进版!免HTTPS!
查看>>
【译】JavaScript面试问题:事件委托和this
查看>>
hive_学习_00_资源帖
查看>>
Xshell配色为ubuntu风格
查看>>
[Spring实战系列](8)Spring注入方式之setter注入
查看>>
Hadoop完全分布式安装Kafka
查看>>
算法与数据结构(九) 图论:最短路径问题
查看>>
第12章 元编程与注解、反射
查看>>
浅谈APP与H5对比!优势都有哪些呢?
查看>>
ECS弹性网卡+弹性公网IP配置最佳实践之策略路由
查看>>
基于Yarn的Spark环境,统计哈姆雷特词频(1)
查看>>
数据库表迁移到阿里云的方法有哪些
查看>>
“地球观光之旅”来到这座赛博朋克的城市了!
查看>>