- 两个工程需要在nacos中进行注册,否者找不道远程调用的工程,会报错
- 在gulimall-coupon工程中创建一个方法
@GetMapping("/member/list")
public R membercoupons(){
CouponEntity couponEntity = new CouponEntity();
couponEntity.setCouponName("满一百减五十");
return R.ok().put("coupons", Arrays.asList(couponEntity));
}
- 在gulimall-member 中进行远程调用
1) 在该工程下创建一个feign包,创建接口,用来声明式调用
@FeignClient("gulimall-coupon") # application name
public interface CouponFeignService {
@RequestMapping("/coupon/coupon/member/list")
public R membercoupons();
}
2)将要调用的方法的方法名直接拷贝过来,访问的地址全路径名也进行拷贝
3)调用的地方将该service注入后进行使用
@RequestMapping("/coupons")
public R test(){
MemberEntity memberEntity = new MemberEntity();
memberEntity.setNickname("张三");
R membercoupons = couponFeignService.membercoupons();
return R.ok().put("member",memberEntity.getNickname()).put("coupons", membercoupons.get("coupons"));
}
- application开启远程配置,并扫描远程调用的feign包
@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.fegin") # 开启远程调用功能
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallMemberApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallMemberApplication.class, args);
}
}
返回结果:
完成feign的远程调用其他程序的功能。