SpringBoot集成OpenFeign远程调用简单实例

OpenFeign远程调用简单实例

基于简单的springboot、maven项目,集成使用openFeign

  1. 引入OpenFeign <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
  2. 编写一个接口,加入注解@FeignClient,告诉springCloud这个接口需要调用远程服务,声明接口的每一个方法是调用远程服务的哪个请求 生产者: 被消费者调用的接口 import java.util.Map; import org.springframework.web.bind.annotation.RestController; import com.atguigu.gulimall.coupon.entity.CouponEntity; import com.atguigu.common.utils.R; /** * 优惠券信息 * * @author xiongfeng * @email xf88023@163.com * @date 2022-08-14 21:39:33 */ @RestController @RequestMapping("coupon/coupon") public class CouponController { @RequestMapping("/member/list") public R membercoupons(){ CouponEntity couponEntity = new CouponEntity(); couponEntity.setCouponName("打骨折"); return R.ok("coupons").put("coupons",couponEntity); } } 消费者: Feign包中的接口 @FeignClient("gulimall-coupon") public interface CouponFeignService { @RequestMapping("/coupon/coupon/member/list") public R membercoupons(); } 测试接口:/member/member/coupons package com.atguigu.gulimall.member.controller; import com.atguigu.gulimall.member.feign.CouponFeignService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.atguigu.gulimall.member.entity.MemberEntity; import com.atguigu.common.utils.R; /** * 会员 * * @author xiongfeng * @email xf88023@163.com * @date 2022-08-14 21:48:20 */ @RestController @RequestMapping("member/member") public class MemberController { @Autowired private CouponFeignService couponFeignService; @RequestMapping("/coupons") public R test(){ MemberEntity memberEntity = new MemberEntity(); memberEntity.setNickname("zhangsan"); R membercoupons = couponFeignService.membercoupons(); Object coupons = membercoupons.get("coupons"); return R.ok().put("member",memberEntity).put("coupons",coupons); } }
  3. 开启远程调用 @EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign") @SpringBootApplication public class GulimallMemberApplication { public static void main(String[] args) { SpringApplication.run(GulimallMemberApplication.class, args); } }
经验分享 程序员 微信小程序 职场和发展