学习spring cloud 之FeignClient调用服务

今天一天总算搞明白了FeignClient调用

一句话概括feign:Feign 是一个声明式 WebService 客户端,Feign默认集成了Ribbon

第一步:

引入feign 需要的jar 

<!--FeignClient调用服务-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
第二步:
在启动类添加开启feign 的注解@EnableFeignClients

第三步:
创建一个调用其他服务的client 接口,类上面添加@FeignClient 注解以及@GetMapping 方法
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
//被调用的服务名称
@FeignClient(value = "nacos-provider")
public interface ConsumerClient {

@GetMapping("/hiprovider")
String hiprovider(@RequestParam(value = "name", defaultValue = "forezp", required = false) String name);


}

第四步:

创建可供前端调用类和方法,然后把声明好的client注入controller,ConsumerClient.hiprovider()这种形式来实现远程调用。

    @Autowired
    private ConsumerClient consumerClient;

    @GetMapping("/hiprovider")
    public String hiprovider() {
        String name = consumerClient.hiprovider("yang");
        System.out.println(name);
        return name;
    }

第五步:

在另一个服务中也配置相同的环境,然后实现 /hiprovider 接口即可。

    @GetMapping("/hiprovider")
    public String hiprovider(String name){
        System.out.println("Provider hiprovider被调用");
        return "hi "+name;
    }

 



posted @ 2021-03-02 18:53  90的生力军  阅读(1087)  评论(0编辑  收藏  举报