1 例如當前有微服務a和b峻凫,微服務a和b現(xiàn)在都成功注冊到服務注冊中心nacos竭翠,目前需要實現(xiàn)服務a需要調用服務b的需求清钥,實現(xiàn)步驟如下:
服務a引入openfeign的依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
例如服務b中有個服務如下柒桑,a想調用這個服務:
@RequestMapping("/memeber/list")
? ? public R couponOfMember(){
? ? ? ? CouponEntity entity=new CouponEntity();
? ? ? ? entity.setCouponName("滿一百減十元");
? ? ? ? return R.ok().put("coupon",new CouponEntity());
? ? }
在微服務a中編寫一個接口榨惰,告訴springcloud這個接口需要調用遠程服務
@FeignClient(name ="b" )
public interface CouponFeign {
? ? @RequestMapping("/shopcoupon/coupon/memeber/list")
? ? public R couponOfMember();
}
name ="b":b就是微服務b的名字垢油,
? @RequestMapping("/shopcoupon/coupon/memeber/list")請求的地址必須和需要調用的服務的地址一樣
接下來在主程序入口使用注解@EnableFeignClients(basePackages ="com.fengbao.shop.shopmember.feign")開啟遠程服務的調用:
@SpringBootApplication
@MapperScan("com.fengbao.shop.shopmember.dao")
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.fengbao.shop.shopmember.feign")
public class ShopMemberApplication {
public static void main(String[] args) {
SpringApplication.run(ShopMemberApplication.class, args);
}
}
最后比如我們需要在服務a的某個controller中需要調用這個服務按如下添加:
@Autowired
private CouponFeign couponFeign;
然后就可以使用couponFeign來調用方法了