学习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; }