05-Feign实现服务间的调用

        Feign同时也是springcloud的一个组件,主要进行各个微服务之间的调用。因为在目前项目中还未涉及到微服务开发这块,但是自己简单的研究了下,我们一起来探讨下:在上一节的内容中,Euerka主要是对一些微服务进行注册和发现,那么我们想下,如果单纯的对微服务进行注册和发现,接下来我们怎将这些微服务进行组合起来,就是各个微服务之间的调用呢?Feign在这里可以解决这个问题。

举例:目前有2个微服务,一个是微服务A,另一个是微服务B,需求是,我们需要用微服务A去调用微服务B中的findById(String id)方法。

步骤:

1.首先我们需要在微服务A加入 Feign的依赖:【因为我们需要用feign组件,必须需要加入依赖,才能去使用】



    org.springframework.cloud
    spring-cloud-starter-openfeign
    2.1.0.RELEASE

2.在微服务A的启动类加入注解:

@EnableDiscoveryClient :表示发现微服务客户端

@EnableFeignClients:表示使用 Feign的客户端

3.在微服务A的类中创建接口【比如:AClient】]:【类上加注解:@FeignClient("B")--表示调用微服务B下面的方法】

//value是完整的调用地址 /

/@PathVariable注解必须声明使用的是哪个占位符,如果不声明,启动报错

@RequestMapping(value = "路径/{id}", method = RequestMethod.GET)

public T findById(@PathVariable("id") String id);

4.在微服务A的Controller去调用即可:

注入接口:

@Autowired

private AClient aClient;

调用方法即可。

 

整体的一个步骤已经完成。

 

 

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