SpringCloud整合Feign

一)、是什么

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它地使用方法是定义一个接口,然后再上面添加注解。同时也支持JAX-RS标准注解。Feign也支持可插拔式地编译器和解码器。Spring cloud对Feign进行了封装,使其支持SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。

 

Feign是一个声明式的Web服务客户端,使得编写web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解即可。

 

官网:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign

https://github.com/OpenFeign/feign

 

二)、Feign能干嘛

Feign旨在使编写JavaHttp客户端变得容易

前面使用Ribbon+RestTemplate时,使用RestTemplate对http请求进行了封装处理,形成了一套模板化得调用方法让。但在实际开发中。由于对微服务依赖得调用可能不止一处。往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以Feign在此基础上做了进一步的封装,由它来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需要创建一个接口并使用 注解的方式来配置它。即可完成对服务提供方接口的绑定。简化了使用Spring Cloud Ribbon时,自行封装服务调用客户端的开发量

 

 

三)、如何使用

SpringCloud整合Feign是在pringCloud Ribbon负载均衡的简单介绍和构建的基础上进行的。Feign是对RestTemplage做进一步的封装,所以其整合步骤分两步:1 )、在父项目中使用feign定义一个供外部调用的接口。 2)、模仿microserviceloud-comsumer-dept-80工程构建microserviceloud-comsumer-dept-feign工程。对父项目中的接口进行调用

约定:

EurekaServer指的是microserviceloud-eureka-7001~7003

Prover Server指的是microserviceloud-provider-dept-8001~8003

Consumer Server指的是microserviceloud-comsumer-dept-feign

 

3.1)、在父项目microserviceloud-api中使用feign定义一个供外部调用的接口

       3.1.1、在pom.xml中引入相关依赖

        <!--feign 相关支持 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

       3.1.2、使用Feign定义一个提供服务的接口

@FeignClient(value="MICROSERVICECLOUD-DEPT") 
public interface DeptClientService {
    @RequestMapping(value = "/dept/add", method = RequestMethod.POST)
    public boolean add(Dept dept);

    @RequestMapping(value="/dept/get/{id}",method = RequestMethod.GET)
    public Dept get(@PathVariable("id")long id);

    @RequestMapping(value = "/dept/list",method = RequestMethod.GET)
    public List<Dept> list();
}

       3.1.3、Maven clear

       3.1.4、maven  install

 

3.2)、模仿microserviceloud-comsumer-dept-80工程构建microserviceloud-comsumer-dept-feign工程。对对父项目中的接口进行调用

       3.2.1、在pom.xml中引入Feign的相关依赖

        <!--feign 相关支持 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

      3.2.2、在主配置类上添加注解@EnableFeignClients

      3.2.3、对父项目中的接口进行使用

 

3.3、测试。

   开启Eureka Server、Provider Server、Consumer Server

   访问:http://localhost/consumer/dept/get/2

 

参考:周阳老师教学视频

https://www.cnblogs.com/crazymakercircle/p/11965726.html

https://www.jianshu.com/p/8c7b92b4396c

 

总结:跟着大牛不断学习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值