使用openfeign作為微服務之間的相互調用


1 例如當前有微服務a和b,微服務a和b現在都成功注冊到服務注冊中心nacos,目前需要實現服務a需要調用服務b的需求,實現步驟如下:

服務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來調用方法了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM