3.2 契约配置
    Spring Cloud 在 Feign 的基础上做了扩展,使用 Spring MVC 的注解来完成Feign的功能。原生的 Feign 是不支持 Spring MVC 注解的,如果你想在 Spring Cloud 中使用原生的注解方式来定义客户端也是可以的,通过配置契约来改变这个配置,Spring Cloud 中默认的是 SpringMvcContract。
    Spring Cloud 1 早期版本就是用的原生Fegin. 随着netflix的停更替换成了Open feign
    1)修改契约配置,支持Feign原生的注解

    1. /**
    2. * 修改契约配置,支持Feign原生的注解
    3. * @return
    4. */
    5. @Bean
    6. public Contract feignContract() {
    7. return new Contract.Default();
    8. }

    注意:修改契约配置后,OrderFeignService 不再支持springmvc的注解,需要使用Feign原生的注解
    2)OrderFeignService 中配置使用Feign原生的注解

    1. @FeignClient(value = "mall-order",path = "/order")
    2. public interface OrderFeignService {
    3. @RequestLine("GET /findOrderByUserId/{userId}")
    4. public R findOrderByUserId(@Param("userId") Integer userId);
    5. }

    3)补充,也可以通过yml配置契约

    1. feign:
    2. client:
    3. config:
    4. mall-order: #对应微服务
    5. loggerLevel: FULL
    6. contract: feign.Contract.Default #指定Feign原生注解契约配置