member 服务远程调用coupon服务
1. 这两个服务要同时注册到nacos中。
2.引入open-feign。
3.创建feign包编写接口CouponFeignService
package com.atguigu.gulimall.member.feign;
import com.atguigu.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
@RequestMapping("coupon/coupon/member/list")
public R membercoupons();
}
注意:@RequestMapping("coupon/coupon/member/list")中的地址
是在coupon服务中的congtroller的方法
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
...
@RequestMapping("/member/list")
public R membercoupons(){
CouponEntity couponEntity = new CouponEntity();
couponEntity.setCouponName("满100减50");
return R.ok().put("coupons",Arrays.asList(couponEntity));
}
...
}
4.@EnableFeignClients 加入到启动项目代码中
@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign") @SpringBootApplication @EnableDiscoveryClient public class GulimallMemberApplication { public static void main(String[] args) { SpringApplication.run(GulimallMemberApplication.class, args); } }
5.方法中调用feign接口的方法
@RestController
@RequestMapping("member/member")
public class MemberController {
...
//注入feign的接口
@Autowired
private CouponFeignService couponFeignService;
@RequestMapping("/coupons")
public R test(){
MemberEntity memberEntity = new MemberEntity();
memberEntity.setNickname("张山");
R membercoupons = couponFeignService.membercoupons();//调用feign的方法
return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
}
...
}
来源:oschina
链接:https://my.oschina.net/u/2255699/blog/4331361