Feign基本介绍
Feign介绍
- Feign是一个非常好用的HTTP客户端
- Feign很大程序上简化了HTTP调用方式,可以调用HTTP API
- Feign很好的弥补了SpringCloud的HTTP调用缺陷
Feign能干什么
- Feign包含了多种HTTP的调用形式(有封装的注解等等)
- Feign可以整合Ribbon和Hystrix
- Feign提供了多种HTTP底层支持(比如RestTemplate/WebClient)
Feign特性
- Feign实现了可插拔注解支持,包括Feign和JAX-RS注解
- Feign支持可插拔的HTTP编码器和解码器
- Feign支持HTTP请求和响应的压缩
Feign环境配置和基本使用
Feign使用步骤
- 集成Feign环境
- 添加FeignClient注解
- 业务接口添加类似SpringMVC注解
基础环境
- 引入openfeign依赖包
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: '2.2.4.RELEASE'
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign', version: '2.2.4.RELEASE'
- 在application中通过注解开启EnableFeignClient支持
@EnableFeignClients
- 创建业务接口
- 添加FeignClient注解
- name
- url - 注解访问目标地址(协议/host/port)
- 添加业务方法
- 添加URI和method支持
- 编写入参和返回值
- 添加FeignClient注解
@FeignClient(name="providerTest", url="https://baidu.com")
public interface ProviderService {
@RequestMapping(value="/", method=RequestMethod.GET)
String invokerBaidu();
}
// 可以通过Controller调用此接口的方法[直接注入ProviderService即可]
Feign支持多种HTTP调用形式
- SpringMVC
- 支持
- @RequestMapping
- @RequestParam
- @PathVariable
- @RequestHeader
- @RequestBody
- 不支持
- @GetMapping
- @PostMapping
- 支持
Feign整合Ribbon和Hystrix
未完待续…
Feign的实战技巧
未完待续…