【发布时间】:2019-12-28 21:46:18
【问题描述】:
我正在查看一个为休息操作配置专用 restTemplate 的代码。我看到以下属性
httpProperties.connection-request-timeout=6100
httpProperties.connect-timeout=6100
httpProperties.read-timeout=6100
我的 Config 类如下所示
@Bean
@ConfigurationProperties(prefix = "httpProperties")
public HttpComponentsClientHttpRequestFactory webSystemHttpRequestFactory() {
SSLContext sslContext;
try {
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
HttpClient httpClient = HttpClients.custom().setMaxConnTotal(maxTotalConnection)
.setMaxConnPerRoute(maxConnectionPerRoute).setSSLSocketFactory(socketFactory).build();
return new HttpComponentsClientHttpRequestFactory(httpClient);
}
catch(Exception e) {
}
return new HttpComponentsClientHttpRequestFactory();
}
@Bean(name = "webSystemRestTemplate")
public RestTemplate webSystemRestTemplate() {
RestTemplate restTemplate = new RestTemplate(webSystemHttpRequestFactory());
return restTemplate;
}
我可以看到日志
o.a.h.i.c.DefaultManagedHttpClientConnection.setSocketTimeout - http-outgoing-1: set socket timeout to 6100
这是我想了解的:
@CnfigurationProperties 注解如何设置此值以及设置到哪个属性?
是适用于spring boot应用层还是每个请求层?
请帮助我理解基本概念。
注意:使用的 Apache http 客户端版本是 4.5.2
【问题讨论】:
-
@ThomasAndolf - 我无法关联哪个 bean 具有属性 connection-request-timeout、connect-timeout、read-timeout 以便 ConfigurationProperties 注释将其映射到该值。根据我的理解,属性名称应该与 bean 属性完全匹配。我在这里错过了什么?
标签: spring-boot apache-httpclient-4.x resttemplate spring-rest