前文:如果在一个服务里面调用其他服务的接口,有大概以下几种思路
1.在前台ajax直接请求接口的绝对路径,通过请求参数和返回体完成请求,但是缺点如果请求的接口服务器地址或者域名更换,需要重新替换代码,还可能造成跨域请求接口
2.使用springwork自带的RestTemplate或者使用第三方请求工具完成请求,这种方法虽然不会跨域请求,但是请求方的接口地址变化同样也需要改变
3.如果请求服务和被请求服务都注册在Nacos server上使用Feign请求
一、导入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
二、开启FeignClient与服务发现
同时启动调用微服与被调用服务
被调用方Controller接口
三、创建client包,并添加需要调用的其他模块的微服务的接口
@FeignClient注释在调用者微服务,参数为serviceId,即spring.application.name微服务名称
接口内部请求类型,参数及返回类型均与被调用微服保持一直就可以调用了。