Spring Cloud 在 Feign 的基础上做了扩展,可以让 Feign 支持 Spring MVC 的注解来调用。原生的
Feign 是不支持 Spring MVC 注解的,如果你想在 Spring Cloud 中使用原生的注解方式来定义客户端也是
可以的,通过配置契约来改变这个配置,Spring Cloud 中默认的是 SpringMvcContract。
修改契约配置,支持Feign原生的注解:
/*** 修改契约配置,支持Feign原生的注解* @return*/@Beanpublic Contract feignContract() {return new Contract.Default();}
注意:修改契约配置后,OrderFeignService 不再支持springmvc的注解,需要使用Feign原生的注解
OrderFeignService 中配置使用Feign原生的注解
@FeignClient(value = "mall-order",path = "/order")public interface OrderFeignService {@RequestLine("GET /findOrderByUserId/{userId}")public R findOrderByUserId(@Param("userId") Integer userId);}
补充,也可以通过yml配置契约
feign:client:config:mall-order: #对应微服务loggerLevel: FULLcontract: feign.Contract.Default #指定Feign原生注解契约配置
