```
/**
* Feige接口调用
*/
pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类增加@EnableFeignClients注解
接口调用interface
@FeignClient(value = "test_client")
public interface TestClientFeign {
@RequestMapping(value = "/getOneInfoById.do")
String getOneInfoById(@RequestParam("id") Long id);
//被调用的方法也需要在参数前添加@RequestBody注解
@RequestMapping(value = "/saveAll.do")
boolean saveAll(@RequestBody List<NewsDto> newsDtoList);
//参数注解用@RequestBody是调用接口报这个错误 主要是配置中心引用其他的encode解析
//class java.util.ArrayList is not a type supported by this encoder.
//解决方法是为这个接口单独写一个Configure类
方案1(没尝试)
class CoreFeignConfiguration {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters
@Bean
@Primary
@Scope(SCOPE_PROTOTYPE)
Encoder feignFormEncoder() {
new FormEncoder(new SpringEncoder(this.messageConverters))
}
}
方案2 在调用接口的interface接口注解@FeignClient中Configuration = "EncodeConfiguration.class"
class EncodeConfiguration {
@Bean
Encoder feignFormEncoder(ObjectFactory<HttpMessageConverters> converters) {
return new SpringFormEncoder(new SpringEncoder(converters));
}
}
}