简介
Forest
官方介绍如下:
Forest
是一个开源的 Java HTTP
客户端框架,它能够将 HTTP 的所有请求信息(包括URL、Header
以及Body
等信息)绑定到您自定义的Interface
方法上,能够通过调用本地接口方法的方式发送HTTP
请求,类似于SpringCloud
的openFeign
框架。
Forest 的工作原理
Forest
会将您定义好的接口通过动态代理的方式生成一个具体的实现类,然后组织、验证HTTP
请求信息,绑定动态数据,转换数据形式,SSL
验证签名,调用后端HTTP API
(httpclient
等 API
)执行实际请求,等待响应,失败重试,转换响应数据到Java
类型等脏活累活都由这动态代理的实现类给包了。 请求发送方调用这个接口时,实际上就是在调用这个干脏活累活的实现类。
Forest 的架构
我们将 HTTP 发送请求的过程分为前端部分和后端部分,Forest 本身是处理前端过程的框架,是对后端 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
基本参数
forest:
max-connections: 1000 # 连接池最大连接数
connect-timeout: 3000 # 连接超时时间,单位为毫秒
read-timeout: 3000 # 数据读取超时时间,单位为毫秒
定义接口
创建一个interface
,比如命名为MyClient
,并创建一个接口方法名为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 {
...
}
以上就是基本使用,更多特性,请求阅读官网https://forest.dtflyx.com/