idtitlesidebar_label
non_spring_boot_config
普通项目配置
普通项目配置

若您的项目不是Spring Boot项目,或者没有依赖spring-boot-starter-forest,可以通过下面方式定义 Forest 配置。

创建 ForestConfiguration 对象

ForestConfiguration为 Forest 的全局配置对象类,所有的 Forest 的全局基本配置信息由此类进行管理。

ForestConfiguration对象的创建方式:调用静态方法ForestConfiguration.configuration(),此方法会创建 ForestConfiguration 对象并初始化默认值。

  1. ForestConfiguration configuration = ForestConfiguration.configuration();

配置后端 HTTP API

  1. configuration.setBackendName("okhttp3");

目前 Forest 支持okhttp3httpclient两种后端 HTTP API,若不配置该属性,默认为okhttp3

当然,您也可以改为httpclient

  1. configuration.setBackendName("httpclient");

全局基本配置

  1. // 连接池最大连接数,默认值为500
  2. configuration.setMaxConnections(123);
  3. // 每个路由的最大连接数,默认值为500
  4. configuration.setMaxRouteConnections(222);
  5. // 请求超时时间,单位为毫秒, 默认值为3000
  6. configuration.setTimeout(3000);
  7. // 连接超时时间,单位为毫秒, 默认值为2000
  8. configuration.setConnectTimeout(2000);
  9. // 请求失败后重试次数,默认为0次不重试
  10. configuration.setRetryCount(3);
  11. // 单向验证的HTTPS的默认SSL协议,默认为SSLv3
  12. configuration.setSslProtocol(SSLUtils.SSLv3);
  13. // 打开或关闭日志,默认为true
  14. configuration.setLogEnabled(true);

:::caution 注意

  • 这里setRetryCount只是简单机械的请求失败后的重试次数,所以一般建议设置为0
  • 如果一定要多次重试,请一定要在保证服务端的幂等性的基础上进行重试,否则容易引发生产事故! :::

全局变量定义

Forest 可以通过ForestConfiguration对象的setVariableValue方法自定义全局变量。

其中第一个参数为变量名,第二个为变量值。

全局变量可以在任何模板表达式中进行数据绑定。

  1. ForestConfiguration configuration = ForestConfiguration.configuration();
  2. ...
  3. configuration.setVariableValue("username", "foo");
  4. configuration.setVariableValue("userpwd", "bar");