一个最简单的使用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的使用大全——使用篇相关推荐

  1. linux指令大全(完整篇)

    linux指令大全(完整篇) 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本 ...

  2. php200字日记,日记200字大全30篇

    下面是作文网小学生日记栏目为您准备的一篇<小学生日记大全30篇>,更多小学生日记.暑假日记.日记就上作文网查看更多. 今天我一个人在家.本来想要出去遛遛,谁知天公不作美,湛蓝的天空顿时阴了 ...

  3. 扫地机器人作文列数字举例子_关于扫地机器人的作文随笔最新大全5篇

    扫地机器人代替了人,帮助我们整理家务,省去了我们的时间和体力.今后是不是还会有更厉害的机器人来帮助人类呢?下面给大家分享关于扫地机器人的作文随笔最新大全.欢迎阅读! 扫地机器人的作文随笔[1] 我今年 ...

  4. 最强下载工具IDM使用大全 - 汇总篇

    相关文章阅读: 百度教程 简书教程 csdn文章教程 可点击上述链接查看,也可以跳过而直接阅读下面的文章. 具体原作者文章采集如下: 以下是原文出处: 作者:极简君GK 链接:https://www. ...

  5. feignclient url_对Feign的请求url 重写

    需求:对当前请求的 url 重新构建 debug feign 的执行可知,重写 LoadBalancerFeignClient 类中的 execute 方法即可控制当前请求的url 代码分析 当引入  ...

  6. mysql的driver和url_数据库连接driverClass和jdbcUrl大全

    一.MySQL: driverClass:com.mysql.jdbc.Driver org.gjt.mm.mysql.Driver jdbcUrl:jdbc:mysql://192.168.0.1: ...

  7. 蔬菜名称大全500种_东莞市区常见野生植物大全——草本植物篇(一)

    出于业余爱好,近期收集了东莞市区野生植物真实照大全并配以文字描述,主要分草本植物篇和木本植物篇两大篇章. 第一篇蕨类植物 蕨类植物又称羊齿植物,是一群进化水平最高的孢子植物,是现存最古老的草木植物群体 ...

  8. 前端面试知识点大全——浏览器篇

    总纲:前端面试知识点大全 目录 1.浏览器工作原理 2.浏览器如何解析css,如何渲染css的 2.1 构建DOM树 2.2 构建CSSOM规则树(就是css规则树) 2.3 渲染阻塞 2.4 构建渲 ...

  9. Java开发实例大全提高篇——XML篇

    第3篇  XML篇 第10章  初识XML 10.1  XML语言基础 实例297  简单的XML <?xml version="1.0" encoding="UT ...

最新文章

  1. Go 代码中如何绑定 Host
  2. import cycle not allowed_Cycle药物介绍醋酸群勃龙(2)
  3. 你什么时候使用git rebase而不是git merge?
  4. Netty详解(三):Netty 入门应用
  5. linux怎么命令设置网络连接,Linux网络操作命令
  6. app中传递java数据_Java实现app接口和Socket消息传递(6)servlet映射并返回Json数据
  7. 微信小程序获取openid
  8. SP1026 FAVDICE - Favorite Dice 期望dp
  9. 产品经理之深度学习促进产品
  10. 一个前端的10年前端职业路
  11. 如何自定义Struts2表单验证后的错误信息显示格式
  12. 90 后程序员开发“AI 吵架神器”,专治女朋友各种不服!
  13. 200000000021 键盘监听事件
  14. matlab filter函数_简单使用matlab滤波器
  15. 宠物领养平台的分析与实现
  16. Spiceworks数据统计:Win10发布半年使用情况
  17. WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态
  18. 宾得的宾干微距镜头DA35mm
  19. PPT中要实现图片或图形的任意拖拽
  20. 项目管理铁三角:追求价值还是约束条件

热门文章

  1. 【机器学习入门系列】第三章 数据清理
  2. 考虑说话人信息的对话摘要
  3. Mac安装mysql初始密码忘记 重新设置密码
  4. 偷袭“懒人经济“的自热食品,是一门赚钱的好生意吗?
  5. 如何在Word文档中同时为中文和西文分别设置不同字体
  6. Unity 动态修改URP自带材质参数
  7. 杜比实验室透露Windows8将整合杜比音效技术
  8. 狭窄及隐蔽地下空洞三维探测系统的研制
  9. “65页PPT”事件男主,被拘留后续来了!
  10. 三:将智能合约部署到ganache测试网