spring cloud(三):Feign的应用

1、概念

Feign 是一种声明式、模板化的 HTTP 客户端,是一个声明web服务客户端,这便得编写web服务客户端更容易。

2、应用

2.1 、在项目中,模块与模块之间需要互相调用,比如web模块需要调用service模块的服务,这个时候就需要在web引入Fegin,创建项目web-fegin

2.2、在pom文件里面添加

<dependency>

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

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

</dependency>

2.3、创建启动类WebFeignApplication

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients(basePackages="com.web")

public class WebFeignApplication{

public static void main(String[] args) {

SpringApplication.run(FeignApplication.class, args);

}

}

2.4、定义服务接口类UserFeignClient

@FeignClient(name =WebConstants.SERVIE_USER_NAME)

public interface UserFeignClient {

@RequestMapping("/{id}")

public User findByIdFeign(@RequestParam("id") Long id);

}

2.5、在web层调用Fegin

@RestController

public class FeignController {

@Autowired

private UserFeignClient userFeignClient;

@GetMapping("feign/{id}")

public User findByIdFeign(@PathVariable Long id) {

User user = this.userFeignClient.findByIdFeign(id);

return user;

}

}

2.6 如果不使用上面的fegin,则得自己写个服务调用类,来调用service的服务,增加编程的难度,既然有了fegin,就没必要重复造轮子了。

3、application.properties的配置

spring.application.name=web-fegin

server.port=8020

eureka.client.serviceUrl.defaultZone=http://localhost:9411/eureka/

service.user.name=microservice-provider-user

4、定义常量WebConstants

public class WebConstants{

public static final String SERVIE_USER_NAME="${service.user.name}";

}

5、访问

http://127.0.0.1:8020/fegin/1

6、总结:

其实通过Feign封装了HTTP调用服务方法,使得客户端像调用本地方法那样直接调用方法

原文地址:http://blog.51cto.com/xxdeelon/2095525

时间: 2024-10-14 19:17:23

spring cloud(三):Feign的应用的相关文章

spring cloud 使用feign 遇到问题

spring cloud 使用feign 项目的搭建 在这里就不写了,本文主要讲解在使用过程中遇到的问题以及解决办法 1:示例 1 @RequestMapping(value = "/generate/password", method = RequestMethod.POST) 2 KeyResponse generatePassword(@RequestBody String passwordSeed); 3 在这里 只能使用 @RequestMapping(value = &qu

spring cloud 之 Feign 使用HTTP请求远程服务

一.Feign 简介 在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Apache的Http Client.Netty的异步HTTP Client, Spring的RestTemplate.但是,用起来最方便.最优雅的还是要属Feign了. Feign是一种声明式.模板化的HTTP客户端.在Spring Cloud中使用Feign, 我们可以做到使用

解决Spring Cloud中Feign/Ribbon第一次请求失败的方法

前言 在Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题,要如何解决该问题呢? 造成该问题的原因 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fallback代码.而首次请求往往会比较慢(因为Spring的懒加载机制,要实例化一些类),这个响应时间可能就大于1秒了.知道原因后,我们来总结一下解决放你. 解决方案有三种,以feign为例. 方法一 ? 1 hystrix.command.default.execut

Spring Cloud 之 Feign

新建Spring Boot工程,命名为feign 1.pom.xml添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&quo

spring cloud学习--Feign

Feign简介: Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便.它具有可插拔注释支持,包括Feign注解和JAX-RS注解.Feign还支持可插拔编码器和解码器.Spring Cloud增加了对Spring MVC注释的支持,并HttpMessageConverters在Spring Web中使用了默认使用的相同方式.Spring Cloud集成了Ribbon和Eureka,在使用Feign时提供负载平衡的http客户端.Fegin对Robbin进

Spring Cloud之Feign客户端调用工具

feign介绍 Feign客户端是一个web声明式http远程调用工具,提供了接口和注解方式进行调用. Spring Cloud 支持 RestTemplate  Fetin Feign客户端实际开发中用的最多 ,易读性比较强. 主要调用部分: pom: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Spring Cloud之Feign

资料来源: <<重新定义Spring Cloud>>以及博客和官网 源码地址:https://gitee.com/08081/hello-springcloud 什么是feign ? fegin是一种声明式 模板化的HTTP客户端(仅在consumer中使用) 1. 什么是声明式呢? 声明式调用就像调用本地方法一样调用远程方法,无感知远程http请求 Spring Cloud的声明式调用,可以做到使用HTTP请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程调用,

解决Spring Cloud中Feign第一次请求失败的问题

在Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题 com.netflix.hystrix.exception.HystrixTimeoutException: null at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1.run(AbstractCommand.java:1142) ~[hystrix-core-1.5.18.jar:1.5.

spring cloud(三):Eureka服务的搭建

1. 概念:  Eureka - 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. 2.  搭建:a.首先讲下单机搭建,先新建一个maven项目,在pom里面导入eureka的坐标: <dependencies> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</