微服务中通常使用 Feign 作为服务消费者,那么如何使用 Feign 接口传输文件呢?
一、配置文件解析器
服务提供者和消费者都需要配置文件解析器,这里使用commons-fileupload
替换原有的解析器:
依赖:
注入bean
:
程序入口中剔除原有的解析器:
二、服务提供者,即接收文件一方的配置
Controller
的写法:
@RequestPart
指定文件,后面的@RequestParam
是额外参数,注意额外参数不能超过url长度限制。
三、服务消费者配置
依赖:
文件编码配置:
Feign
接口定义:
与普通Feign
接口写法差不多,注意方法注解和参数与服务提供者的controller
一样。
Controller
的写法,Controller
中接收前端传过来的文件信息和额外参数,然后通过Feign
接口传输到远端:
四、总结
最后梳理一下流程,服务消费者接收前端(如浏览器)传过来的文件,但是并不进行业务处理,然后通过Feign
调用接口,把文件传给服务提供者,服务提供者拿到文件后,进行相应的业务处理。