spring cloud项目使用feign的时候都会发现一个问题,就是get方式无法解析对象参数。其实feign是支持对象传递的,但是得是Map形式,而且不能为空,与spring在机制上不兼容,因此无法使用。
spring cloud在2.1.x版本中提供了@SpringQueryMap注解,可以传递对象参数,框架自动解析,只可惜啊,得是2.1.0以后的版本。spring 在5.0中提供了webflux踢掉了对tomcat的依赖,又提供了gateway踢掉了对zuul的依赖,2.1.x版本恐怕是准备对netflix动刀了。
官方源码
// Params.java
public class Params {
private String param1;
private String param2;
// [Getters and setters omitted for brevity]
}
@FeignClient("demo")
public class DemoTemplate {
@GetMapping(path = "/demo")
String demoEndpoint(@SpringQueryMap Params params);
}