在团队开发中,如果你的微服务需要给别人提供接口调用,那么通常你需要写一个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到自己的服务中。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐