随笔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>
上一篇 下一篇

猜你喜欢

热点阅读