在微服务中,若想要使用远程调用,需要引入spring-cloud-starter-openfeign(在使用注册中心的环境下)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>xxx</version>
</dependency>
具体实现步骤如下:
由于open-feign是声明式的远程调用,所以需要编写一个接口,并且告诉SpringCloud这个接口需要调用远程服务。这个接口我放在公共模块下的feign中:
有了远程feign的接口,需要创建相应的实现类:
接着还要使用@EnableFeignClients开启当前需要使用远程调用的这个服务的远程调用,并且指定你的远程调用接口在哪个包下:
注:
@EnableFeignClients 该注解用于开启当前服务的远程调用功能
basePackages 用于指定远程调用接口所在的包,方便服务启动的时候可以快速扫描到。他可 以接收多个包名,因为它是一个String[]
最后在需要远程调用时注入对应的远程调用接口就好:
如果没有在调用的微服务的模块里面指定上一步的注解,就会出现一下的情况:
最后在需要远程调用时注入对应的远程调用接口就好: