(此次创建的Demo小案例都是基于springBoot【2.0.0.M3】,springCloud【Finchley.M2】创建的,读者若是为了演示正常,请务必保持版本一致)
上一篇文章我们说了应用之间的通信,使用RestTemplate的方式进行访问,但实际开发中我们还是会常常使用Feign的方式进行调用,它采用基于接口加注解的方式,更好更简单的方便我们实际开发的使用
下面我们来一步步实现其简单的Demo
同样我们依然需要两个模块【product】和【order】
product的详细创建过程可参考【SpringCloud 之 应用通信--RestTemplate 的三种使用方式】,这里我们不再重复述说
下面我们主要说一说order模块的创建,主要分为下面四个步骤去实现:
1)引入相关依赖
2)启动类添加注解
3)客户端定义访问的服务端接口
4)客户端,也就是调用端引入并使用
下面是详细的步骤
1)首先我们依然新建一个项目
2)引入相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.M3</version>
</dependency>
3)启动主类上添加注解【@EnableFeignClients】
4)客户端定义访问的服务端接口
@FeignClient(name = "product")
public interface ProductClient {
@GetMapping("/msg")
String productMsg();
}
5)客户端,也就是调用端引入定义好的服务端接口并使用(ProductClient)
@RestController
public class OrderController {
@Autowired
private ProductClient productClient;
@RequestMapping("/getProductMsg")
public String getProductMsg(){
String str = productClient.productMsg();
System.out.println("我是order端:"+str);
return str;
}
}
最后访问http://localhost:8090/getProductMsg,可以看到相应的访问结果,如下图: