Feign
前言
在Spring Cloud框架中,使用RestTemplate方式调用存在的问题
String url = "http://userservices/user/"+order.getUserId();
User user = restTemplate.getForObject(url,User.class);
存在的问题: 代码可读性差,变成体验不统一
Feign作为一个声明式http客户端,可以让我们优雅的解决http请求发送问题。
官方地址:https://github.com/OpenFeign/feign
Feign继承了ribbon,从而也实现了负载均衡
一、定义和使用
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<articfactId>spring-cloud-starter-openfeign</articfactId>
</dependency>
2.在启动类上增加注解EnableFeignClients
3.编写Feign客户端:
@FeignClient("userservice")
public interface UserClient{
@GetMapping("/user/{id}")
User findById(@PathVariable("id") Long id);
}
基于SpringMVC的注解来声明远程调用,比如:
- 请求名称:userservice
- 请求方式:get
- 请求路径:/user/{id}
- 请求参数:Long id
- 返回值类型:User
二、Feign的配置
1.可以覆盖的默认配置
类型 | 作用 | 说明 |
---|---|---|
feign.Logger.Level |
三、Feign性能优化
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。