refactor: 优化API执行器架构和HTTP客户端配置

引入JHApiExecutionAbstract抽象类统一管理API执行器,所有执行器从实现JHApiExecution接口改为继承该抽象类,简化代码结构并提高可扩展性。同时优化HTTP客户端配置的灵活性,支持按需配置超时和连接参数。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
yanlongqi
2025-11-22 11:59:18 +08:00
parent 69c4037b4b
commit 360e30c4ff
13 changed files with 127 additions and 195 deletions

View File

@@ -23,13 +23,8 @@ public class JHOpenapiClientAutoConfigure {
public JHApiClient jhApiClient(JHOpenapiProperties properties) {
JHApiClient jhApiClient = new JHApiClient(properties.getServerUrl());
JHApiHttpClientImpl jhApiHttpClient = new JHApiHttpClientImpl();
jhApiHttpClient.setMaxPerRoute(properties.getMaxPerRout());
jhApiHttpClient.setSocketTimeout(properties.getSocketTimeout());
jhApiHttpClient.setMaxTotal(properties.getMaxTotal());
jhApiHttpClient.setConnectTimeout(properties.getConnectTimeout());
jhApiHttpClient.setConnectRequestTimeout(properties.getConnectRequestTimeout());
jhApiHttpClient.init();
jhApiHttpClient.createHttpClients();
jhApiHttpClient.init(properties.getSocketTimeout(), properties.getConnectTimeout(), properties.getConnectRequestTimeout());
jhApiHttpClient.createHttpClients(properties.getMaxTotal(), properties.getMaxPerRout());
jhApiClient.setApiHttpClient(jhApiHttpClient);
return jhApiClient;
}

View File

@@ -8,7 +8,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @author yanlongqi
* @date 2024/6/4 16:03
*/
@Data
@ConfigurationProperties(prefix = CommonConstants.CONFIG_PREFIX)
@@ -20,31 +19,31 @@ public class JHOpenapiProperties {
private String serverUrl;
/**
* 设置连接池的最大连接数,默认{@link DefaultHttpClientConfig#MAX_TOTAL}
* 设置连接池的最大连接数
*/
private int maxTotal = DefaultHttpClientConfig.MAX_TOTAL;
private Integer maxTotal;
/**
* 设置服务每次能并行接收的请求数量,默认{@link DefaultHttpClientConfig#MAX_PER_ROUTE}
* 设置服务每次能并行接收的请求数量
*/
private int maxPerRout = DefaultHttpClientConfig.MAX_PER_ROUTE;
private Integer maxPerRout;
/**
* 设置服务socket连接超时的时间(单位:毫秒),默认{@link DefaultHttpClientConfig#SOCKET_TIMEOUT}
* 设置服务socket连接超时的时间(单位:毫秒)
*/
private int socketTimeout = DefaultHttpClientConfig.SOCKET_TIMEOUT;
private int socketTimeout;
/**
* 设置服务连接超时的时间(单位:毫秒),默认{@link DefaultHttpClientConfig#CONNECT_TIMEOUT}
* 设置服务连接超时的时间(单位:毫秒)
*/
private int connectTimeout = DefaultHttpClientConfig.CONNECT_TIMEOUT;
private int connectTimeout;
/**
* 设置服务请求超时的时间(单位:毫秒),默认{@link DefaultHttpClientConfig#CONNECTION_REQUEST_TIMEOUT}
* 设置服务请求超时的时间(单位:毫秒)
*/
private int connectRequestTimeout = DefaultHttpClientConfig.CONNECTION_REQUEST_TIMEOUT;
private int connectRequestTimeout;
/**