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); }