基于 openfeign 实现微服务间的调用
·
目录
使用 openfeign 作为服务间调用组件, 业务场景: 用户查询优惠券
1 引入依赖
<!-- 服务远程调用:OpenFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2 编写调用接口,指定要调用的微服务及其接口方法
// 1. 远程服务配置,统一接口前缀 = /coupon
@FeignClient(value = "cmgmall-coupons",path = "/coupon")
public interface CouponsFeignService {
// 2. 接口地址:GET 请求 /coupon/list
@RequestMapping(value = "/list", method = RequestMethod.GET)
// 3. 响应体注解(Feign 中可省略)
@ResponseBody
// 4. 方法定义:返回通用结果集,入参=使用状态 + 请求头会员ID
CommonResult<List<SmsCouponHistory>> list(
@RequestParam(value = "useStatus", required = false) Integer useStatus,
@RequestHeader("memberId") Long memberId
);
}
3 启动类添加@EnableFeignClients 注解
@SpringBootApplication
@EnableFeignClients // 核心:开启Feign远程调用
public class CmgmallMemberApplication {
public static void main(String[] args) {
SpringApplication.run(CmgmallMemberApplication.class, args);
}
}
4 测试,发起远程服务调用
@RestController
public class MemberController {
@Autowired
private CouponsFeignService couponsFeignService;
@RequestMapping(value = "/coupons", method = RequestMethod.GET)
public CommonResult getCoupons(
@RequestParam(value = "useStatus", required = false) Integer useStatus,
@RequestHeader("memberId") Long memberId
){
// 通过 OpenFeign 远程调用优惠券服务
return couponsFeignService.list(useStatus, memberId);
}
}
更多推荐



所有评论(0)