id | title | sidebar_label |
---|---|---|
spring_config | Spring 项目配置 | Spring 项目配置 |
若您的项目依赖的是Spring
,而非Spring Boot
,或者使用xml
方式进行Spring Bean
的配置,那么您可以通过Spring xml
的方式定义配置。
依赖
在进行Spring
方式配置前,需要先确保您的项目在Maven中除了forest-core和spring外,还依赖forest-spring包
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring</artifactId>
<version>1.5.0-RC7</version>
</dependency>
配置 XML SCEHEMA
打开spring
的上下文配置文件,在beans
开头定义的属性中加入Forest的Schema
xmlns:forest="http://forest.dtflyx.com/schema/forest"
...
xsi:schemaLocation=" ...
http://forest.dtflyx.com/schema/forest
http://forest.dtflyx.com/schema/forest/forest-spring.xsd
..."
加入完成后类似如下效果
<?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">
...
</beans>
添加Forest基本配置的定义
<!-- Forest 全局配置 -->
<!-- id 在spring上下文中bean的id, 默认值为forestConfiguration -->
<!-- backend 后端HTTP API: okhttp3 -->
<!-- timeout 请求超时时间,单位为毫秒, 默认值为3000 -->
<!-- connectTimeout 连接超时时间,单位为毫秒, 默认值为2000 -->
<!-- retryCount 请求失败后重试次数,默认为0次不重试 -->
<!-- retryer 重试器类 -->
<!-- sslProtocol 单向验证的HTTPS的默认SSL协议,默认为SSLv3 -->
<!-- logEnabled 打开或关闭日志总开关,默认为true -->
<!-- logRequest 打开/关闭Forest请求日志(默认为 true) -->
<!-- logResponseStatus 打开/关闭Forest响应状态日志(默认为 true) -->
<!-- logResponseContent 打开/关闭Forest响应内容日志(默认为 false) -->
<forest:configuration
id="config0"
backend="httpclient"
timeout="30000"
connectTimeout="10000"
retryCount="3"
retryer="com.dtflys.forest.retryer.NoneRetryer"
charset="UTF-8"
sslProtocol="SSLv3"
maxConnections="500"
maxRouteConnections="500"
logEnabled="true"
logRequest="false"
logResponseStatus="false"
logResponseContent="true">
<!-- forest变量定义 开始 -->
<forest:var name="baseUrl" value="http://www.xxx.com"/>
<forest:var name="x" value="0"/>
<forest:var name="y" value="1"/>
<!-- forest变量定义 结束 -->
<!-- SSL KeyStore定义 开始 -->
<forest:ssl-keystore id="keystore1" file="test.keystore" keystorePass="123456" certPass="123456"/>
<forest:ssl-keystore id="keystore2" file="test2.keystore" keystorePass="foo" certPass="bar"/>
<!-- SSL KeyStore定义 结束 -->
<!-- Forest转换器定义 开始 -->
<!-- 设置JSON转换器 -->
<forest:converter dataType="json" class="com.dtflys.forest.converter.json.ForestGsonConverter">
<forest:parameter name="dateFormat" value="yyyy/MM/dd hh:mm:ss"/>
</forest:converter>
<!-- 设置XML转换器 -->
<forest:converter dataType="xml" class="com.dtflys.forest.converter.xml.ForestJaxbConverter">
</forest:converter>
<!-- Forest转换器定义 结束 -->
</forest:configuration>
使用forest:configuration标签创建在Spring中的ForestConfiguration Bean
使用forest:var标签定义变量
注意:变量的作用域为该ForestConfiguration之下,所有跟这个配置对象绑定的Client都能访问到其下的变量,而别的ForestConfiguration下定义的变量不能访问。
创建Client Bean
创建Client Bean有两种方式
- 通过forest:client标签创建单个Client Bean
<forest:client id="siteAClient" configuration="config0" class="com.xxx.client.SiteAClient"/>
- 通过forest:scan标签制定back-package的方式批量创建Client Bean
<forest:scan configuration="config0" base-package="com.xxx.client"/>