springcloud之feign实现声明式rest调用

在线者      2022-04-17     586

关键词:

Feign是Netflix开发的声明式、模板化的HTTP客户端,可帮助我们更加便捷、优雅的调用HTTP api。spring cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便:只需要创建一个接口,并在接口上添加一些注解,代码就完成了,Feign支持多种注解,子嗲的或者JAX-RS注解等。

添加maven依赖:

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

修改application.yml文件:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8765
spring:
  application:
    name: service-feign

在程序的启动类ServiceFeignApplication ,加上@EnableFeignClients注解开启Feign的功能:

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
public class ServiceFeignApplication {

    public static void main(String[] args) {
        SpringApplication.run( ServiceFeignApplication.class, args );
    }
}

创建一个Feign接口,并添加@FeignClient注解:

@FeignClient(value = "service-hi")
public interface SchedualServiceHi {
    @RequestMapping(value = "/hi",method = RequestMethod.GET)
    String sayHiFromClientOne(@RequestParam(value = "name") String name);
}

@FeignClient注解中的“service-hi”是需要调用的服务名称,会自动使用Ribbon负载均衡,由于使用了Eureka,Ribbon会把服务名解析成Eureka Server服务注册表中的服务,如果不想使用Eureka,可以使用service.ribbon.listofServers属性配置服务器列表。

然后在web controller层直接传入参数并调用SchedualServiceHi.sayHiFromClientOne(name)即可。

springcloud:使用feign实现声明式rest调用

一、简介前面我们是使用RestTemplate实现restapi调用的,代码如下:@GetMapping("/user/{id}")public User findById(@PathVariable Long id) throws Exception {    return & 查看详情

springcloud(10):使用feign实现声明式rest调用-构造多参数请求

请求多参数的URL假设请求的URL包含多个参数,如:http://localhost:8086/user1?id=1&username=nihao 1.1、Feign接口@FeignClient(name = "spring-ribbon-eureka-client2")public interface UserFeignClient&nb 查看详情

springcloud入门教程:用声明式rest客户端feign调用远端http服务

首先简单解释一下什么是声明式实现?要做一件事,需要知道三个要素,where,what,how。即在哪里(where)用什么办法(how)做什么(what)。什么时候做(when)我们纳入how的范畴。1)编程式实现:每一个要素(where,what,how)都... 查看详情

springcloud——feign声明式服务调用(代码片段)

什么是FeignFeign是SpringCloudNetflix组件中的一个轻量级RESTFUL和HTTP服务客户端,实现了负载均衡和Rest调用的开源框架,封装了Ribbon和RestTemplate,实现了webService的面向接口编程,进一步降低了项目的耦合度。是一种声... 查看详情

springcloud——feign声明式服务调用(代码片段)

什么是FeignFeign是SpringCloudNetflix组件中的一个轻量级RESTFUL和HTTP服务客户端,实现了负载均衡和Rest调用的开源框架,封装了Ribbon和RestTemplate,实现了webService的面向接口编程,进一步降低了项目的耦合度。是一种声... 查看详情

springcloud之feign伪装

Feign:可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。Feign是Netflix开发的声明式/模板化的HTTP客户端。Feign的使用1.在consumer的pom文件中导入依赖<dep... 查看详情

springcloud学习系列之二-----服务消费者(feign)和负载均衡(ribbon)

前言本篇主要介绍的是SpringCloud中的服务消费者(Feign)和负载均衡(Ribbon)功能的实现以及使用Feign结合Ribbon实现负载均衡。SpringCloudFeignFeign介绍Feign是一个声明式的WebService客户端,它使得编写WebSerivce客户端变得更加简单。我们只需... 查看详情

springcloud之feign客户端

...eign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。SpringCloud增加了对SpringMVC注释的支持,并使用SpringWeb中默认使用的HttpMessageConverters。SpringCloud集成Ribbon和 查看详情

springcloud第七篇|声明式服务调用feign

本文是SpringCloud专栏的第七篇文章,了解前六篇文章内容有助于更好的理解本文:SpringCloud第一篇|SpringCloud前言及其常用组件介绍概览SpringCloud第二篇|使用并认识Eureka注册中心SpringCloud第三篇|搭建高可用Eureka注册中心SpringCloud第四... 查看详情

springcloud——feign声明式服务调用(代码片段)

什么是FeignFeign是SpringCloudNetflix组件中的一个轻量级RESTFUL和HTTP服务客户端,实现了负载均衡和Rest调用的开源框架,封装了Ribbon和RestTemplate,实现了webService的面向接口编程,进一步降低了项目的耦合度。是一种声... 查看详情

(05)springcloud实战之feign负载均衡

...X-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverters。Feig 查看详情

springcloud无废话入门03:feign声明式服务调用

1.Feign概述     在上一篇的HelloService这个类中,我们有这样一行代码:     returnrestTemplate.getForObject("http://hello-service/hello",String.class);     查看详情

springcloud(10)——声明式的rest客户端feign(代码片段)

声明式的Rest客户端Feign是一个声明式的Rest客户端,它可以跟SpringMVC的相关注解一起使用,也可以使用SpringWeb的HttpMessageConverter进行请求或响应内容的编解码。其底层使用的Ribbon和Eureka,从而拥有客户端负载均衡的功能。使用它需... 查看详情

springcloud之feign客户端调用工具(代码片段)

...ttp远程调用工具,提供了接口和注解方式进行调用。 SpringCloud支持RestTemplate FetinFeign客户端实际开发中用的最多,易读性比较强。  主要调用部分:pom:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xs 查看详情

springcloud----服务消费与负载均衡(feign)

  feign是一个声明式的伪客户端,只需要创建一个接口并且注解,它具有可插拔的特性。feign集合了Ribbon,再与Eurake结合实现服务的注册发现与负载均衡。结合Hystrix,具有熔断功能。  1.使用步骤首先引入feign,eureka,hystrix的jar... 查看详情

springcloud(hoxton.sr3)基础篇:第六章feign声明式服务调用

一、Feign简介  在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串就会效率低下  ... 查看详情

微服务架构整理-(十一springcloud实战之openfeign)(代码片段)

SpringCloud实战之OpenFeignOpenFeign介绍实现消费者功能创建SpringBoot工程添加依赖添加注解声明服务在Controller中调用服务添加配置文件结果实现负载均衡功能实现熔断功能配置熔断开关实现回调函数获取异常信息总结OpenFeign介绍OpenFeig... 查看详情

springcloud:服务调用-声明式客户端访问

环境springcloudEdgware.SR6jdk7sts4.6.0mysql5.7背景通过声明式客户端openfeign进行支付微服务的访问。搭建步骤只需要修改支付服务调用层,增加依赖就可以了。支付服务调用层只需要定义接口,不需要进行实现。packagejiangbo.springcloud.dao;im... 查看详情