spring cloud Feign使用@RequestLine遇到的坑

网友投稿 309 2023-01-03

spring cloud Feign使用@RequestLine遇到的坑

Feign使用@RequestLine遇到的坑

如何在微服务项目中调用其它项目的接口试使用spring cloud feign声明式调用。

/**

* 客户端请去

* @author RAY

*

*/

@FeignClient(name="store",configuration=FooConfiguration .class)

public interface UserFeignClient {

@RequestLine("GET /simple/{id}")

public User findById(@Param("id") Long id);

}

但是启动得时候报错:

Method getLinksForTrack not annotated with HTTP method type (ex. GET, POST)

官方文档说明

@RequestLine is a core Feign annotation, but you are using the Spring Cloud @FeignClientwhich uses Spring MVC annotations.

意思就是feign 默认使用的是spring mvc 注解(就是RequestMapping 之类的) ,所以需要通过新增一个配置类来修改其“契约”。

@Configuration

public class FooConfiguration {

@Bean

public Contract feignContract() {

return new feign.Contract.Default();

//使用feign自带契约

}

}

PS : feignContract方法名不要跟一样。否则启动得时候会报错。 得改一个跟类名不一样得方法名!

@RequestLine的使用及配置

@RequestLine与其它请求不同,只需要简单写请求方式和路径就能达到请求其它服务的目的。

@FeignClient(value = "feign-server",configurationDkFZYyOI = FeignConfig.class) //需要一个配置文件

public interface TestService {

@RequestLine("POST /feign/test") //对应请求方式和路径

String feign(@RequestBody UserDO userDO);

}

@EnableFeignClients

@SpringBootConfigurationDkFZYyOI

public class FeignConfig {

@Bean

public Contract contract(){

return new feign.Contract.Default();

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:泰国圆通快递物流查询单号(韩国圆通快递查询单号查询追踪)
下一篇:如何找到网站api接口(api接口网址)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~