feign name指定服务调用无效问题及解决

 更新时间:2024年11月11日 14:40:50   作者:二掌柜,酒来!  
文章主要介绍了FeignClient注解的常用属性,并通过一个具体的例子说明了为什么某个Feign调用需要使用url指定路径才能访问,最后,文章给出了解决办法,即使用path属性指定前缀

背景

在做三方的外接接口的时候,出现了非常奇怪的一个问题。

某个feign调用,必须使用 url 指定路径才能做到访问,因为明明使用name属性就可以指定服务了。

这就非常奇怪了~~~~

@FeignClient(name = "outerService", url = "${third.url}",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class)
// @FeignClient(value = "outerService",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class, decode404 = true)
@Service
public interface outerServiceClientFeign extends BafooCommonApi {

}

涨知识了

声明接口时在代码中通过@Resource注入容器之后即可使用。

@FeignClient注解的常用属性如下:

  • value/name:value和name的作用一样,用于指定FeignClient的名称;如果没有配置url,而且项目使用了Eureka 、nacos或者ribbon,name属性会作为微服务的名称,用于服务发现。反之,只是一个名称。此属性和 spring.application.name 对应。
  • url:一般用于调试,作用是指定@FeignClient调用的API地址,而非从服务中心获取。
  • urlname都可以使用占位符,比如:@FeignClient(name = “your.feign.name",url="${your.feign.url}”);
  • decode404:当发生http 404错误时,如果该字段为true,会调用decoder进行解码;否则,抛出FeignException。
  • configuration:Feign配置类,作用是自定义Feign的Encoder、Decoder、LogLevel、Contract。
  • fallback:定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口。
  • fallbackFactory:工厂类,用于生成fallback类实例,实现每个接口通用的容错逻辑,减少重复的代码。
  • path:定义当前FeignClient的统一前缀。
  • contextId:为某个接口设置单独的超时,与与config里的属性对应。

原因

三方服务的配置文件里面加上了,前缀路径

 servlet:
    context-path: /outer

这就导致,feign调用时,拼接的路径少了 一个前缀 /outer

解决办法

使用 path属性,指定前缀。

@FeignClient(value = "outerService",path = "/outer",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class, decode404 = true)

总结

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

相关文章

  • Idea中springboot项目的热部署无法生效问题解决

    Idea中springboot项目的热部署无法生效问题解决

    本文主要介绍了Idea中springboot项目的热部署无法生效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • IDEA中配置文件格式为UTF-8的操作方法

    IDEA中配置文件格式为UTF-8的操作方法

    这篇文章主要介绍了IDEA中配置文件格式为UTF-8的操作方法,第一个需要设置文件编码格式的位置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • java词法分析器DDL递归应用详解

    java词法分析器DDL递归应用详解

    这篇文章主要介绍了java词法分析器DDL递归应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • springboot动态加载jar包动态配置实例详解

    springboot动态加载jar包动态配置实例详解

    这篇文章主要给大家介绍了关于springboot动态加载jar包动态配置的相关资料,在项目开发的过程中,有时候需要动态灵活的加载某个jar包并执行其里面的方法的时候,需要的朋友可以参考下
    2023-11-11
  • maven多模块工程打包部署的方法步骤

    maven多模块工程打包部署的方法步骤

    本篇文章主要介绍了maven多模块工程打包部署的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • spring在service层的方法报错事务不会回滚的解决

    spring在service层的方法报错事务不会回滚的解决

    这篇文章主要介绍了spring在service层的方法报错事务不会回滚的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 微服务实战之怎样提升springboot服务吞吐量

    微服务实战之怎样提升springboot服务吞吐量

    这篇文章主要介绍了微服务实战之怎样提升springboot服务吞吐量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Java深入学习图形用户界面GUI之布局管理器

    Java深入学习图形用户界面GUI之布局管理器

    本文章向大家介绍Java GUI布局管理器,主要包括布局管理器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2022-05-05
  • 关于Mybatis中SQL节点的深入解析

    关于Mybatis中SQL节点的深入解析

    这篇文章主要给大家介绍了关于Mybatis中SQL节点的深入解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • Mybatis整合Spring 由于版本引起的BUG问题

    Mybatis整合Spring 由于版本引起的BUG问题

    这篇文章主要介绍了Mybatis整合Spring 由于版本引起的BUG问题,需要的朋友可以参考下
    2017-06-06

最新评论