@FeignClient的name和path使用方法

在团队开发中,如果你的微服务需要给别人提供接口调用,那么通常你需要写一个feign包,这个包是服务提供方和调用方都能通过maven引入的。

在微服务概念中,每个服务都有一个服务名称,在web项目中,每个服务都有一个context-path配置,是所有接口的前缀,具体配置分别是:

服务名称:

spring:
  application:
    name: testAdmin

context-path:

server:
  servlet:
    context-path: /test

如上两个配置。

我在写feign包的时候,会创建一个接口,类名加feign注解,加这个注解主要是给调用方用的,用来标识我的服务名称和context-path,如下配置,name对应服务名称,path对应context-path,然后写每个接口的路径名。

此处的@FeignClient注解,可以简单理解为帮助调用方找到真实的服务提供方的接口路径,实际上feign能做的不止这么多。

@FeignClient(name = "testAdmin", path = "/test")
public interface TestFeignClient{

    @PostMapping("/test")
    void test(@RequestBody TestParam param);

}

如此,我的提供方就配置好了,接下来我需要写一个controller实现我的feign接口,提供服务就完成了。

更新:

建议feign包改为两个接口,接口A定义接口和@RequestMapping,接口B继承接口A,并添加@FeignClient注解,这样调用方使用接口B,提供方实现接口A,且提供方无需注入接口B到自己的服务中。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
@FeignClient(name是一个注解,用于声明一个Feign客户端。它的常用属性有name、url、decode404、configuration、fallback、fallbackFactory和path。 name属性用于指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。 url属性一般用于调试,可以手动指定@FeignClient调用的地址。 decode404属性是一个布尔值,当发生http 404错误时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException。 configuration属性是Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract等。 fallback属性用于定义容错的处理类。当调用远程接口失败或超时时,会调用对应接口的容错逻辑。fallback指定的类必须实现@FeignClient标记的接口。 fallbackFactory属性是一个工厂类,用于生成fallback类的实例。通过这个属性,我们可以实现每个接口通用的容错逻辑,减少重复的代码。 path属性用于定义当前FeignClient的统一前缀。当项目中配置了server.context-path和server.servlet-path时,可以使用path属性来统一指定接口的前缀。 一个使用@FeignClient注解的例子如下: @FeignClient(name="custorm", fallback=Hystrix.class) public interface IRemoteCallService { @RequestMapping(value="/custorm/getTest", method = RequestMethod.POST) @Headers({"Content-Type: application/json;charset=UTF-8"}) List<String> test(@RequestParam("names") String[] names); } 在这个例子中,@FeignClient注解的name属性指定了FeignClient的名称为"custorm"。该接口定义了一个test方法,并使用@Header注解指定了请求头的Content-Type。如果调用该接口失败或超时,会调用Hystrix类中定义的容错逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [feign-1.0.0.jar](https://download.csdn.net/download/loltdwfs/12334296)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [@FeignClient使用详解](https://blog.csdn.net/xhwangSGTL/article/details/111991017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值