簡介
Forest
官方介紹如下:
Forest
是一個開源的 Java HTTP
客戶端框架缀程,它能夠將 HTTP 的所有請求信息(包括URL荠医、Header
以及Body
等信息)綁定到您自定義的Interface
方法上饼记,能夠通過調用本地接口方法的方式發(fā)送HTTP
請求,類似于SpringCloud
的openFeign
框架。
Forest 的工作原理
Forest
會將您定義好的接口通過動態(tài)代理的方式生成一個具體的實現(xiàn)類妻率,然后組織儿礼、驗證HTTP
請求信息,綁定動態(tài)數(shù)據(jù),轉換數(shù)據(jù)形式铭腕,SSL
驗證簽名银择,調用后端HTTP API
(httpclient
等 API
)執(zhí)行實際請求,等待響應累舷,失敗重試浩考,轉換響應數(shù)據(jù)到Java
類型等臟活累活都由這動態(tài)代理的實現(xiàn)類給包了。 請求發(fā)送方調用這個接口時被盈,實際上就是在調用這個干臟活累活的實現(xiàn)類析孽。
Forest 的架構
我們將 HTTP 發(fā)送請求的過程分為前端部分和后端部分,F(xiàn)orest 本身是處理前端過程的框架只怎,是對后端 HTTP API 框架的進一步封裝袜瞬。
與SpringBoot整合
對于 Springboot
項目來說, 只需要添加 forest-spring-boot-starter
依賴即可
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
<version>1.5.35</version>
</dependency>
配置屬性
在application.yaml / application.properties
中配置的HTTP
基本參數(shù)
forest:
max-connections: 1000 # 連接池最大連接數(shù)
connect-timeout: 3000 # 連接超時時間身堡,單位為毫秒
read-timeout: 3000 # 數(shù)據(jù)讀取超時時間邓尤,單位為毫秒
定義接口
創(chuàng)建一個interface
,比如命名為MyClient
贴谎,并創(chuàng)建一個接口方法名為helloForest
汞扎,用@Get
注解修飾之。
public interface MyClient {
@Get("http://localhost:8080/hello")
String helloForest();
}
掃描接口
若您已有定義好的Forest
請求接口(比如名為 com.yoursite.client.MyClient)赴精,那就可以開始愉快使用它了。
只要在Springboot
的配置類或者啟動類上加上@ForestScan
注解绞幌,并在basePackages
屬性里填上遠程接口的所在的包名
@SpringBootApplication
@Configuration
@ForestScan(basePackages = "com.yoursite.client")
public class MyApp {
...
}
以上就是基本使用蕾哟,更多特性,請求閱讀官網(wǎng)https://forest.dtflyx.com/