openFeign 默认使用Spring MVC 契约,也就是要用Spring MVC的注解,要想(或者需要)使用Feign的默认契约,也就是使用Feign原生的注解,则需要如下改动:
1.增加契约配置类
package cn.tju.edu.config;
import feign.Contract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ContractConfig {
@Bean
public Contract getContract(){
return new feign.Contract.Default();
}
}
2.修改Feign接口中方法上的注解:
package cn.tju.edu.service;
import cn.tju.edu.config.InfoServiceConfig;
import feign.RequestLine;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name="demoservice", configuration = {InfoServiceConfig.class})
public interface InfoService {
@RequestLine("GET /test")
String test();
}
其中@RequestLine为Feign的原生注解。参数的话,需要使用@Param注解
也可以给通过配置文件给某个微服务配置契约:
feign.client.config.demoservice.contract=feign.Contract.Default