2020-09-28

3、SpringCloud OpenFeign 声明式远程调用1)简介Feign 是一个声明式的 HTTP 客户端,它的目的就是让远程调用更加简单。Feign 提供了 HTTP 请求的模板,通过编写简单的接口和插入注解,就可以定义好 HTTP 请求的参数、格式、地址等信息。Feign 整合了 Ribbon (负载均衡) 和 Hystrix (服务熔断),可以让我们不再需要显式地使用这两个组件。Spring Cloud Feign 在 Netfix Feign 的基础上扩展了对 SpringM
摘要由CSDN通过智能技术生成

3、SpringCloud OpenFeign 声明式远程调用

1)简介

Feign 是一个声明式的 HTTP 客户端,它的目的就是让远程调用更加简单。Feign 提供了 HTTP 请求的模板,通过编写简单的接口和插入注解,就可以定义好 HTTP 请求的参数、格式、地址等信息。

Feign 整合了 Ribbon (负载均衡) 和 Hystrix (服务熔断),可以让我们不再需要显式地使用这两个组件。

Spring Cloud Feign 在 Netfix Feign 的基础上扩展了对 SpringMVC 注解的支持,在其实现下,我们只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。简化了 Spring Cloud Ribbon 自行封装服务调用客户端的开发量。

2)使用

1、引入依赖


<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

2、开启 feign 功能


@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")

3、 编写一个接口,告诉 Spring Cloud 这个接口需要调用远程服务

声明接口的每一个方法都是调用哪个远程服务的那个请求


@FeignClient("gulimall-coupon")

public interface CouponFeignService {

    /**

    * 远程调用的路径写全

    *

    * @return {@link R}

    */

    @RequestMapping("/coupon/coupon/member/list")

    public R memberCoupons();

}

4、编写 controller


    @Autowired

    private CouponFeignService couponFeignService;

    @GetMapping("/coupons")

    public R test() {

        MemberEntity memberEntity = new MemberEntity();

        memberEntity.setNickname("don");

        R memberCoupons = couponFeignService.memberCoupons();

        return R.ok().put("member", memberEntity).put("coupons", memberCoupons.get("test"));

    }

5、远程服务编写


@RestController

@RequestMapping("coupon/coupon")

public class CouponController {

    @Autowired

    private CouponService couponService;

    /**

    * 会员优惠券  测试

    *

    * @return {@link R}

    */

    @Reques
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值