随笔2018-09-22 SpringCloud Feign下如
2018-09-22 本文已影响0人
会飞的三文鱼
服务提供者:upload-server
context-path: /uploadService
public class UploadController {
//other methods...
@PostMapping(value = "/file/upload",
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE},
produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public ResponseEntity <FileUploadResponse> uploadFile (
@RequestParam("file") MultipartFilefile
);
}
服务消费者:upload-client
@FeignClient(name = "upload-server", path="/uploadService", configuration=MultipartFileSupportConfig.class)
public class UploadClient {
// other methods
@PostMapping(value = "/file/upload",
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE},
produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public ResponseEntity <FileUploadResponse> uploadFile(
@RequestPart("file") MultipartFilefile
);
}
MultipartFileSupportConfig.class
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Scope;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
@Configuration
public class MultipartFileSupportConfig {
@Bean
@Primary
@Scope("prototype")
public Encoder multipartFormEncoder() {
return new SpringFormEncoder();
}
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
记得引入Dependency
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form-spring</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form</artifactId>
<version>3.3.0</version>
</dependency>