作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服

    实例演示了SpringCloud通过Feign来实现远程接口的调用,  实例共有三个项目 eureka(注册中心),  product(远程接口提供方), feign(远程接口调用方),  Feign形式的调用使得对远程接口的调用就像是调用本地方法一样, 简化了开发者的操作

请看下图, 首先启动eureka, 然后启动product, feign, 可以看到 feign, product已经成功注册到注册中心;

如果你还不了解SpringCloud,请观看给您推荐的视频【观看视频】

image.png


项目对应的实例代码可以通过【下载实例】按钮获取

开发工具: IntelliJ IDEA2017, JDK1.8, Maven 3.0.2

【项目包含内容】(见下图):   

eureka:      注册中心

product:    服务接口提供方

feign:         服务接口调用方

image.png

下面重点讲解一下调用方(feign)工程代码配置:

在开发中,我们常用httpClient去远程调用其他系统的接口,一般情况下,需要我们指定调用的url,feign也实现了一套远程调用的方法,并且更为优雅。 
1.添加依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.创建FeignClient接口(用于指定远程调用的服务), 此接口必须要与项目product中的对外提供的http接口保持一致

@FeignClient(name = "product")      //product为注册到eureka的名称
public interface ProductClient {
    @GetMapping("/msg")
    String msg();
}

注意:这里就是一个接口。 



3.在需要进行远程调用的方法里注入该接口,并调用对应的api接口方法

@RestController
public class FeignController {
    @Autowired
    private ProductClient productClient;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){
        String response = productClient.msg();
        return response;
    }
}

4.在启动类上添加注解 @EnableFeignClients,表示支持Feign

FeignClient接口和spring mvc接口的格式一致,在调用方的方法中,我们只需要调用本系统中定义的接口即可。


Home