声明式服务调用Feign

Feign介绍

Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入.Feign并且集成了Ribbon实现客户端负载均衡调用。

 

Feign 整合测试

1、在客户端添加依赖,所需依赖如下

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
        </dependency>

 

2、定义FeignClient接口

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient(value = "XC-SERVER-CMS")
public interface CmsPageClient {

    @GetMapping("/get/{id}")
    public CmsPage findPageById(@PathVariable("id") String id);
}

 

 

3.在启动类中添加注解

启动类添加@EnableFeignClients注解

 

4.测试

 @Resource
    private CmsPageClient cmsPageClient;

    @Test
    public void fun02(){
        CmsPage cmsPage = cmsPageClient.findPageById("5a754adf6abb500ad05688d9");

        System.out.println(cmsPage);
    }

 

 

执行结果

 

 

Feign 执行流程 

1.启动类添加@EnableFeignClients注解,spring会扫描标记了 FeignClients注解的接口,并生成接口的代理对象

2.@FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)即指定了cms的服务名称,Feign会从注册中
心获取cms服务列表,并通过负载均衡算法进行服务调用

3.接口方法注解@GetMapping("/get/{id}") ,指定了调用url,并且指定了调用方法的类型,feign根据url进行调用

 

 

Feign 注意事项 

1.feignClient接口 有参数在参数必须加@PathVariable("XXX")和@RequestParam("XXX")

2.feignClient返回值为复杂对象时其类型必须有无参构造函数。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值