Spring Cloud Openfeign

# Spring Cloud Openfeign

(1)导入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
 //如果出现loadbalancer相关错误,在nacos"包中移除ribbion依赖,并加入loadbalancer依赖"
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-loadbalancer</artifactId>
 </dependency>

image-20220212230404036

(2)gulimall-coupon的CouponController增加测试接口

@RequestMapping("/member/list")
public R membercoupons(){
    // 全系统的所有返回都返回R
    // 应该去数据库查用户对于的优惠券,但这个我们简化了,不去数据库查了,构造了一个优惠券给他返回
    CouponEntity couponEntity = new CouponEntity();
    couponEntity.setCouponName("满100-10");//优惠券的名字
    return R.ok().put("coupons",Arrays.asList(couponEntity));
}

image-20220212231408850

(2)开启远程调用功能 @EnableFeignClients,要指定远程调用功能放的基础包

@EnableFeignClients(basePackages="com.peng.gulimall.member.feign")//扫描接口方法注解

image-20220212231644234

(3)调用远程服务的接口

package com.peng.gulimall.member.feign;

import com.peng.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
// 告诉spring cloud这个接口是一个远程客户端,要调用coupon服务(nacos中找到),
// 具体是调用coupon服务的/coupon/coupon/member/list对应的方法
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    // 远程服务的url
    // 注意写全优惠券类上还有映射
    // 注意我们这个地方不是控制层,所以这个请求映射请求的不是我们服务器上的东西,而是nacos注册中心的
    // 得到一个R对象
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}

image-20220212231828720

(4)在gulimall-member的MemberController写一个测试接口

@Autowired
CouponFeignService couponFeignService;

@RequestMapping("/coupons")
public R test(){
    MemberEntity memberEntity = new MemberEntity();
    memberEntity.setNickname("会员昵称张三");
    R membercoupons = couponFeignService.membercoupons();//假设张三去数据库查了后返回了张三的优惠券信息

    //打印会员和优惠券信息
    return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
}

image-20220212232045341

(5)访问:http://localhost:8005/member/member/coupons

image-20220212235117548

posted @   peng_boke  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示