spring cloud Feign使用@RequestLine遇到的坑

 更新时间:2021年06月25日 09:11:46   作者:RayLiang微博  
这篇文章主要介绍了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",configuration = FeignConfig.class)  //需要一个配置文件
public interface TestService {
    @RequestLine("POST /feign/test")    //对应请求方式和路径
    String feign(@RequestBody UserDO userDO);
}
@EnableFeignClients
@SpringBootConfiguration
public class FeignConfig {
    @Bean
    public Contract contract(){
        return new feign.Contract.Default();
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈JSP是如何编译成servlet并提供服务的

    浅谈JSP是如何编译成servlet并提供服务的

    JSP是Servlet的一种特殊形式,JSP页面最终是编译为Servlet执行的,那么本文主要介绍了JSP是如何编译成servlet并提供服务的,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • SpringBoot集成Kaptcha验证码的详细过程

    SpringBoot集成Kaptcha验证码的详细过程

    Kaptcha是一个强大而灵活的Java验证码生成库,通过合理的配置和使用,它可以有效地提高web应用的安全性,防止自动化程序的滥用,这篇文章主要介绍了SpringBoot集成Kaptcha验证码,需要的朋友可以参考下
    2024-07-07
  • Java 多线程之间共享数据

    Java 多线程之间共享数据

    这篇文章主要介绍了Java 多线程之间共享数据,围绕Java 多线程之间共享数据展开文章内容线程范围的共享变量、使用Map实现线程范围内数据的共享、ThreadLocal实现线程范围内数据的共享,需要的朋友可以参考一下
    2021-10-10
  • 深入浅析Random类在高并发下的缺陷及JUC对其的优化

    深入浅析Random类在高并发下的缺陷及JUC对其的优化

    这篇文章主要介绍了Random类在高并发下的缺陷及JUC对其的优化 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Jenkins Host key verification failed问题解决

    Jenkins Host key verification failed问题解决

    这篇文章主要介绍了Jenkins Host key verification failed问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java简单计算器的实现

    Java简单计算器的实现

    这篇文章主要为大家详细介绍了Java简单计算器的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • SpringBoot中配置文件pom.xml的使用详解

    SpringBoot中配置文件pom.xml的使用详解

    SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一下它的具体使用吧
    2025-03-03
  • Java利用Guava Retry实现重处理

    Java利用Guava Retry实现重处理

    guava-retrying是谷歌的Guava库的一个小扩展,允许为任意函数调用创建可配置的重试策略,比如与正常运行时间不稳定的远程服务对话的函数调用。本文将利用其实现重处理,感兴趣的可以了解一下
    2022-08-08
  • Spring Boot日志SLF4J和Logback示例详解

    Spring Boot日志SLF4J和Logback示例详解

    这篇文章主要介绍了Spring Boot日志SLF4J和Logback详解,Logback相比于Log4j,性能提高了10倍以上的性能,占用的内存也变小了,并且文档十分详细,推荐使用Slf4j+Logback,需要的朋友可以参考下
    2023-07-07
  • Java封装数组实现包含、搜索和删除元素操作详解

    Java封装数组实现包含、搜索和删除元素操作详解

    这篇文章主要介绍了Java封装数组实现包含、搜索和删除元素操作,结合实例形式分析了java针对数组元素的查找、删除、判断等相关操作封装与使用技巧,需要的朋友可以参考下
    2020-03-03

最新评论