feignclient url_关于FeignClient的使用大全——使用篇
一个最简单的使用FeignClient的例子如下:
1,添加maven依赖
org.springframework.cloud
spring-cloud-starter-openfeign
2.0.2.RELEASE
io.github.openfeign
feign-core
9.7.0
io.github.openfeign
feign-slf4j
9.7.0
2,在main主入口类添加FeignClients启用注解
@EnableFeignClients
......
3,编写FeignClient代码
@FeignClient(name = "myFeignClient", url = "http://127.0.0.1:8001")
public interface MyFeignClient {
@RequestMapping(method = RequestMethod.GET, value = "/participate")
String getCategorys(@RequestParam Map params);
}
4,直接使用FeignClient
@Autowired
MyFeignClient myFeignClient;
到此,FeignClient便可正常使用一般的Http接口了~
5,如果想使用文件上传接口或者post的x-www-form-urlencoded接口,那需要做如下配置
添加依赖包
io.github.openfeign.form
feign-form
3.4.1
io.github.openfeign.form
feign-form-spring
3.4.1
commons-fileupload
commons-fileupload
1.3.3
添加bean注解配置
@Bean
@Primary
@Scope("prototype")
public Encoder multipartFormEncoder(ObjectFactory messageConverters) {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
定义文件上传接口
@RequestMapping(value = {"/demo/v1/upload"},
method = {RequestMethod.POST},
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
ReturnResult uploadFile(
@RequestPart(value = "file") MultipartFile file,
@RequestParam(value = "bucketName", required = false) String bucketName);
6,如果想使用Apache的httpclient的连接池,可以做如下配置
添加依赖
org.apache.httpcomponents
httpclient
4.5.6
io.github.openfeign
feign-httpclient
9.7.0
添加属性配置
feign:
okhttp:
enabled: false
httpclient:
enabled: true
maxConnections: 20480
maxConnectionsPerRoute: 512
timeToLive: 60
connectionTimeout: 10000
userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0'
引入FeignAutoConfiguration配置
@Import(FeignAutoConfiguration.class)
@Configuration
public class FeignConfig {
...
}
经过这几步操作后,便可启用Apache的httpclient替换其内嵌httpclient。
7,如果想启用hystrix熔断降级,则可作如下配置
添加依赖
io.github.openfeign
feign-hystrix
9.7.0
添加属性配置
feign:
hystrix:
enabled: true
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 15000
threadpool:
default:
coreSize: 40
maximumSize: 100
maxQueueSize: 100
添加降级策略
public class MyFeignClientFallback implements MyFeignClient {
@Override
public ReturnResult uploadFile(MultipartFile file, String bucketName) {
return new ReturnResult<>(5001);
}
}
添加bean配置
@Bean
@Scope("prototype")
public Feign.Builder feignBuilder() {
return HystrixFeign.builder();
}
@Bean
public MyFeignClientFallback fb() {
return new MyFeignClientFallback();
}
更新@FeignClient代码
@FeignClient(
name = "myFeignClient",
url = "http://127.0.0.1:8001",
fallback = MyFeignClientFallback.class,
configuration = {FeignConfig.class})
8,如果想处理熔断的具体原因,可以做如下更新
更新熔断策略代码实现FallbackFactory接口
public class MyFeignClientFallback implements FallbackFactory {
@Override
public MyFeignClient create(final Throwable cause) {
return new MyFeignClient() {
@Override
public ReturnResult uploadFile(MultipartFile file, String bucketName) {
// 处理cause
return new ReturnResult<>(5001);
}
};
}
}
更新bean配置
@Bean
public MyFeignClientFallback fbf() {
return new MyFeignClientFallback();
}
更新@FeignClient代码
@FeignClient(
name = "myFeignClient",
url = "http://127.0.0.1:8001",
fallbackFactory = MyFeignClientFallback.class,
configuration = {FeignConfig.class})
-End-
feignclient url_关于FeignClient的使用大全——使用篇相关推荐
- linux指令大全(完整篇)
linux指令大全(完整篇) 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本 ...
- php200字日记,日记200字大全30篇
下面是作文网小学生日记栏目为您准备的一篇<小学生日记大全30篇>,更多小学生日记.暑假日记.日记就上作文网查看更多. 今天我一个人在家.本来想要出去遛遛,谁知天公不作美,湛蓝的天空顿时阴了 ...
- 扫地机器人作文列数字举例子_关于扫地机器人的作文随笔最新大全5篇
扫地机器人代替了人,帮助我们整理家务,省去了我们的时间和体力.今后是不是还会有更厉害的机器人来帮助人类呢?下面给大家分享关于扫地机器人的作文随笔最新大全.欢迎阅读! 扫地机器人的作文随笔[1] 我今年 ...
- 最强下载工具IDM使用大全 - 汇总篇
相关文章阅读: 百度教程 简书教程 csdn文章教程 可点击上述链接查看,也可以跳过而直接阅读下面的文章. 具体原作者文章采集如下: 以下是原文出处: 作者:极简君GK 链接:https://www. ...
- feignclient url_对Feign的请求url 重写
需求:对当前请求的 url 重新构建 debug feign 的执行可知,重写 LoadBalancerFeignClient 类中的 execute 方法即可控制当前请求的url 代码分析 当引入 ...
- mysql的driver和url_数据库连接driverClass和jdbcUrl大全
一.MySQL: driverClass:com.mysql.jdbc.Driver org.gjt.mm.mysql.Driver jdbcUrl:jdbc:mysql://192.168.0.1: ...
- 蔬菜名称大全500种_东莞市区常见野生植物大全——草本植物篇(一)
出于业余爱好,近期收集了东莞市区野生植物真实照大全并配以文字描述,主要分草本植物篇和木本植物篇两大篇章. 第一篇蕨类植物 蕨类植物又称羊齿植物,是一群进化水平最高的孢子植物,是现存最古老的草木植物群体 ...
- 前端面试知识点大全——浏览器篇
总纲:前端面试知识点大全 目录 1.浏览器工作原理 2.浏览器如何解析css,如何渲染css的 2.1 构建DOM树 2.2 构建CSSOM规则树(就是css规则树) 2.3 渲染阻塞 2.4 构建渲 ...
- Java开发实例大全提高篇——XML篇
第3篇 XML篇 第10章 初识XML 10.1 XML语言基础 实例297 简单的XML <?xml version="1.0" encoding="UT ...
最新文章
- Go 代码中如何绑定 Host
- import cycle not allowed_Cycle药物介绍醋酸群勃龙(2)
- 你什么时候使用git rebase而不是git merge?
- Netty详解(三):Netty 入门应用
- linux怎么命令设置网络连接,Linux网络操作命令
- app中传递java数据_Java实现app接口和Socket消息传递(6)servlet映射并返回Json数据
- 微信小程序获取openid
- SP1026 FAVDICE - Favorite Dice 期望dp
- 产品经理之深度学习促进产品
- 一个前端的10年前端职业路
- 如何自定义Struts2表单验证后的错误信息显示格式
- 90 后程序员开发“AI 吵架神器”,专治女朋友各种不服!
- 200000000021 键盘监听事件
- matlab filter函数_简单使用matlab滤波器
- 宠物领养平台的分析与实现
- Spiceworks数据统计:Win10发布半年使用情况
- WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态
- 宾得的宾干微距镜头DA35mm
- PPT中要实现图片或图形的任意拖拽
- 项目管理铁三角:追求价值还是约束条件