Feign微服务远程调用基础流程

Feign微服务远程调用基础流程

当我们需要在一个微服务中调用另一个微服务的方法时,需要使用feign来调用,基础流程如下

  1. 在feign-api中的clients中新建暴露接口**Client,方法参数大于两个需要加上@RequestParam注解,例如:

@FeignClient(value ="itemservice", //网关中设定的微服务名
              path = "/item",//controller层的访问路径
              configuration = FeignConfig.class)//配置类,按需添加
public interface ItemClient {

    @GetMapping("/list")//业务层的方法,从业务层直接cv即可
    public PageDTO<Item> page(@RequestParam("page") Integer page, @RequestParam("size") Integer size);

    @GetMapping("/listAll")
    public List<Item> listAll();

    @GetMapping("/{id}")
    public Item getById(@PathVariable Long id);
}
  1. 在需要进行方法调用的微服务中进行配置

首先需要在该微服务的启动类中添加注解

@EnableFeignClients(basePackages = "com.hmall.common.clients")
//参数为Client接口的包的全路径

需要使用的类中进行,在进行调用,方法名和参数须一致

@Autowired
    private UserClient userClient;

 @Test
    public void test(){
        PageDTO<Item> list = itemClient.page(1, 5);
        List<Item> list1 = list.getList();
        Assert.assertEquals(5,list1.size());//断言语句,常用于测试
    }

你可能感兴趣的:(微服务,java,spring)