Forest v1.5.23 发布,性能提升3倍

Forest 介绍

Forest 是一个开源的声明式 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求

Forest 如何使用

Forest 不需要您编写具体的 HTTP 调用过程,只需要您定义一个接口,然后通过 Forest 注解将 HTTP 请求的信息添加到接口的方法上即可。请求发送方通过调用您定义的接口便能自动发送请求和接受请求的响应

Forest 的工作原理

Forest 会将您定义好的接口通过动态代理的方式生成一个具体的实现类,然后组织、验证 HTTP 请求信息,绑定动态数据,转换数据形式,SSL 验证签名,调用后端 HTTP API (httpclient 等 API) 执行实际请求,等待响应,失败重试,转换响应数据到 Java 类型等脏活累活都由这动态代理的实现类给包了。 请求发送方调用这个接口时,实际上就是在调用这个干脏活累活的实现类

获得奖项

2021 年度 OSC 中国开源项目评选「最受欢迎项目」

https://www.oschina.net/project/top_cn_2021

重点优化内容

  1. 引入了 ForestRoute 路由的概念,每个 Host + Port 的不同组合对应不同的路由
  2. 将 OkHttpClient 以及 HttpClient 后端 Client 对象归类到不同的路由,并进行缓存
  3. 可以从外部注入自定义的后端 Client 对象
  4. 默认都会缓存后端 Client 对象,同路由、同SSL、同超时间情况下都会复用同一个 Client 对象
  5. 如某个接口不想缓存 Client 对象,可通过@BackendClient注解进行配置

     

优化结果

 

OkHttp后端QPS提升3倍,Httpclient后端QPS提升1倍

本次更新

新增特性:

BUG修复:

代码改动

  • refactor: 重构Cookie (#I5C26U:重构Cookie)
  • refactor: 重构OkHttpClient
  • add: 添加拦截器到请求中方法ForestRequest#addInterceptor(Class<? extends Interceptor>)
  • add: HttpClientFactory
  • add: OkHttpClientFactory

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/200327/forest-1-5-23-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。