Spring Cloud Feign传递map对象和多媒体文件
Feign基本使用
Spring Cloud 通过Feign调用其他微服务的api具体用法
@EnableFeignClients //开启fegin客户端
@SpringBootApplication
public class MongodbApiApplication {
publicstaticvoid main(String[] args) {
SpringApplication.run(MongodbApiApplication.class, args);
}
}
//@FeignClient(value=调用的服务的名字, fallback=熔断器的类)
@FeignClient(value = "mongodb", fallback = MongodbHystrix.class)
publicinterfaceMongodbApi {
@RequestMapping(name = "/findById", method = RequestMethod.POST)
public Object findById(@RequestBody Map<String, Object> map);
}
Fegin传递map对象
GET请求每个方法参数都默认有@RequestParam
注解,最好指定value的值参数;如果是对象需要使用@RequestBody
,该注解每个方法最多只能传递一个对象,如果需要传递多个对象就需要用map来传递
传递对象和map必须是post请求,并且加上@RequestBody
修饰
用map传递对象的一些坑
- 通过Feign传递map对像,接收到对象之后自动转成String(json)
- 通过map传递基本数据类型,接收时也会变成String类型
Fegin传递多媒体文件
@FeignClient(value = "fastdfs", configuration = FeignMultipartSupportConfig.class)
public interface FastDFSApi {
@RequestMapping(value = "/uploadImage", method = RequestMethod.POST, produces = {
MediaType.APPLICATION_JSON_UTF8_VALUE }, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String uploadImageAndCrtThumbImage(@RequestPart MultipartFile multipartFile);
@Configuration
public class FeignMultipartSupportConfig {
@Bean
@Primary
@Scope("prototype")
public Encoder multipartFormEncoder() {
return new SpringFormEncoder();
}
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
}
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/11/spring-cloud-feign-pass-map-objects-and-multimedia-files/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
Spring Cloud Feign传递map对象和多媒体文件
Feign基本使用
Spring Cloud 通过Feign调用其他微服务的api具体用法
@EnableFeignClients //开启fegin客户端
@SpringBootApplication
public class MongodbAp……
文章目录
关闭
共有 0 条评论