002-SpringCloud-OpenFeign(远程调用)
SpringCloud-OpenFeign
- 1.引入依赖
- 2.编写一个远程调用接口
- 3.测试
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注意:从Spring Cloud Hoxton.M2 RELEASED版本开始,Spring Cloud Feign不再使用Ribbon作为负载均衡器,而是使用spring-cloud-loadbalancer
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
注意:如果项目中仍然包含Ribbon依赖,可能会导致spring-cloud-loadbalancer无法正常工作。因此,在引入spring-cloud-loadbalancer的同时,需要排除Ribbon依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
2.编写一个远程调用接口
场景:服务 cswfw-member 调用 服务 cswfw-coupon
- 第一步:在服务 cswfw-coupon 写一个测试方法
- 第二步:在服务 cswfw-member 里面定义一个远程调用服务的接口
- 第三步:给接口 CouponFeignService 添加注解,告诉注册中心找哪个远程服务
==@FeignClient(“cswfw-coupon”) (cswfw-coupon:远程服务在注册中心的名称) ==
- 第四步:声明一下远程服务要调用的方法(这里直接把远程方法的方法名复制过来)
- 注意:这里的地址是完整的地址
- 第五步:在启动类上加上开启远程调用的注解
@EnableFeignClients(basePackages = “com.xiaogang.member.feign”)
注意:这里的 basePackages 就是刚才在上面第二步创建的接口路径,方便启动服务的时候扫描到注解@FeignClient
3.测试
- 启动服务,可以在注册中心查看是否成功注册
- 访问地址:http://localhost:8082/member/member/coupons