Skip to main content
Version: 1.5.x

快速上手

在 Forest 依赖加入好之后,就可以构建 HTTP 请求的接口了。

在 Forest 中,所有的 HTTP 请求信息都要绑定到某一个接口的方法上,不需要编写具体的代码去发送请求。请求发送方通过调用事先定义好 HTTP 请求信息的接口方法,自动去执行 HTTP 发送请求的过程,其具体发送请求信息就是该方法对应绑定的 HTTP 请求信息。

Hello World#

创建一个interface,比如命名为MyClient,并创建一个接口方法名为helloForest,用@Request注解修饰之。

src/main/java/com/yoursite/client/MyClient.java

public interface MyClient {
    @Request("http://localhost:8080/hello")    String helloForest();
}

通过@Request注解,将上面的MyClient接口中的helloForest()方法绑定了一个 HTTP 请求, 其 URL 为http://localhost:8080/hello ,并默认使用GET方式,且将请求响应的数据以String的方式返回给调用者。

发送请求#

若您已有定义好的 Forest 请求接口(比如名为 com.yoursite.client.MyClient),那就可以开始愉快使用它了。

在 Spring Boot 项目中调用接口#

只要在Spring Boot的配置类或者启动类上加上@ForestScan注解,并在basePackages属性里填上远程接口的所在的包名

src/main/java/MyApp.java
@SpringBootApplication@Configuration@ForestScan(basePackages = "com.yoursite.client")public class MyApp { ...}

Forest 会扫描@ForestScan注解中basePackages属性指定的包下面所有的接口,然后会将符合条件的接口进行动态代理并注入到 Spring 的上下文中。

友情提示

1.5.1以后版本可以跳过此步,不需要 @ForestScan 注解来指定扫描的包范围

然后便能在其他代码中从 Spring 上下文注入接口实例,然后如调用普通接口那样调用即可。

@Componentpublic class MyService {    @Autowired    private MyClient myClient;
    public void testClient() {        String result = myClient.helloForest();        System.out.println(result);    }
}

在 Spring 项目中调用接口#

友情提示

如果您的项目是基于 spring boot 的,或者非spring的普通项目,可以直接跳过这段内容。

在 Spring 上下文配置文件中进行配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:forest="http://forest.dtflyx.com/schema/forest"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans.xsd       http://forest.dtflyx.com/schema/forest       http://forest.dtflyx.com/schema/forest/forest-spring.xsd">
    <!-- Forest全局配置 -->    <forest:configuration        id="forestConfiguration"            timeout="30000"        connectTimeout="10000"        maxConnections="500"        maxRouteConnections="500">            </forest:configuration>        <!-- 扫描 base-package 属性定义包,然后会将该包名下符合条件的接口进行动态代理并注入到 Spring 的上下文中 -->    <forest:scan configuration="forestConfiguration" base-package="com.yoursite.client"/></beans>

然后便能在其他代码中从 Spring 上下文注入接口实例,然后如调用普通接口那样调用即可。

文档导航

关于如何进行Spring项目配置的详细信息请参见 《Spring 项目配置》

@Componentpublic class MyService {    @Autowired    private MyClient myClient;
    public void testClient() {        String result = myClient.helloForest();        System.out.println(result);    }
}

在普通项目中调用接口#

友情提示

如果您的项目是基于 Spring Boot 的,或者传统 Sping 的,可以跳过这段,看前两节内容。

通过ForestConfiguration的方法createInstance(Class clazz)实例化接口,然后如调用普通接口那样调用即可。

// 实例化Forest请求接口MyClient myClient = Forest.client(MyClient.class);// 调用Forest请求接口,并获取响应返回结果String result = myClient.simpleRequest();// 打印响应结果System.out.println(result);
文档导航

关于如何进行非Spring普通项目配置请参见 《普通项目配置》

快捷接口#

如不想定义 interface 类,直接调用一个方法访问一个URL地址,可以使用 《快捷接口